SqlServer知識點

在公司每天寫Sql寫,存儲過程,可是公司工具模板把建立的語句都寫好了,只負責寫裏面的邏輯,長此以往,建立語句都不會寫了。還有一些知識點都很模糊,日常使用的時候都不清楚,稀裏糊塗的就在用。在這裏整理一下。鞏固複習。編程

一.存儲過程。緩存

1.存儲過程相似編程語言的裏面的函數,方法。將Sql語句封裝在裏面,方便調用。編程語言

2.首先看下建立無參數存儲過程語法。ide

CREATE PROCEDURE MyProTest
AS
    SELECT * FROM dbo.saUser
GO

建立有參數的存儲過程函數

CREATE PROCEDURE MyProTest
(
    @ID INT=0
)
WITH ENCRYPTION /* { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]*/
AS
    SELECT * FROM dbo.saUser
GO

 

 這個地方後面WITH後面跟的值要說明下工具

a.RECOMPILE  代表 SQL Server 不會緩存該過程的計劃,該過程將在運行時從新編譯。在使用非典型值或臨時值而不但願覆蓋緩存在內存中的執行計劃時,請使用 RECOMPILE 選項。加密

b.ENCRYPTION 表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 語句文本的條目。使用 ENCRYPTION 可防止將過程做爲 SQL Server 複製的一部分發布。 說明 在升級過程當中,SQL Server 利用存儲在 syscomments 中的加密註釋來從新建立加密過程。 說白了就是就是對存儲過程進行加密。這個我常常用,上面以惡就不常常用了,在這裏瞭解一下。spa

3.執行存儲過程code

EXEC dbo.MyProTest @ID=1

 

4.刪除存儲過程blog

DROP PROC dbo.MyProtest

 

刪除語法簡單說一下。無論刪除表,仍是存儲過程,仍是視圖,仍是函數。刪除語法都是 Drop 關鍵字 +類型+名稱。

二.函數 

1.建立語法

 a.返回Nvarchar類型參數

CREATE FUNCTION Test    ---建立語法 Create關鍵字 +類型 +名稱
(
    @iIden INT          ---參數
)
RETURNS NVARCHAR(50)    --定義返回類型
WITH ENCRYPTION
AS
BEGIN
    DECLARE @sUserName NVARCHAR(50)   
    SELECT @sUserName=A.sUserName
    FROM dbo.saUser A(NOLOCK)
    WHERE A.iIden=@iIden

    RETURN @sUserName
END

b.返回表變量的函數

CREATE FUNCTION Test    ---建立語法 Create關鍵字 +類型 +名稱
(
    @iIden INT          ---參數
)
RETURNS @Table TABLE(
   iiden INT,
   sName NVARCHAR(50)
)
WITH ENCRYPTION
AS
BEGIN
    DECLARE @sUserName NVARCHAR(50)
    INSERT INTO @Table
    SELECT A.iIden,A.sUserName
    FROM dbo.saUser A(NOLOCK)
    WHERE A.iIden=@iIden

    RETURN
END
相關文章
相關標籤/搜索