SqlServer知识点
在公司天天寫Sql寫,存儲(chǔ)過程,但是公司工具模板把創(chuàng)建的語(yǔ)句都寫好了,只負(fù)責(zé)寫里面的邏輯,久而久之,創(chuàng)建語(yǔ)句都不會(huì)寫了。還有一些知識(shí)點(diǎn)都很模糊,平常使用的時(shí)候都不清楚,稀里糊涂的就在用。在這里整理一下。鞏固復(fù)習(xí)。
一.存儲(chǔ)過程。
1.存儲(chǔ)過程類似編程語(yǔ)言的里面的函數(shù),方法。將Sql語(yǔ)句封裝在里面,方便調(diào)用。
2.首先看下創(chuàng)建無參數(shù)存儲(chǔ)過程語(yǔ)法。
CREATE PROCEDURE MyProTest ASSELECT * FROM dbo.saUser GO創(chuàng)建有參數(shù)的存儲(chǔ)過程
CREATE PROCEDURE MyProTest (@ID INT=0 ) WITH ENCRYPTION /* { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]*/ ASSELECT * FROM dbo.saUser GO?
?這個(gè)地方后面WITH后面跟的值要說明下
a.RECOMPILE ?表明 SQL Server 不會(huì)緩存該過程的計(jì)劃,該過程將在運(yùn)行時(shí)重新編譯。在使用非典型值或臨時(shí)值而不希望覆蓋緩存在內(nèi)存中的執(zhí)行計(jì)劃時(shí),請(qǐng)使用 RECOMPILE 選項(xiàng)。
b.ENCRYPTION?表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 語(yǔ)句文本的條目。使用 ENCRYPTION 可防止將過程作為 SQL Server 復(fù)制的一部分發(fā)布。 說明 在升級(jí)過程中,SQL Server 利用存儲(chǔ)在 syscomments 中的加密注釋來重新創(chuàng)建加密過程。 說白了就是就是對(duì)存儲(chǔ)過程進(jìn)行加密。這個(gè)我經(jīng)常用,上面以惡就不經(jīng)常用了,在這里了解一下。
3.執(zhí)行存儲(chǔ)過程
EXEC dbo.MyProTest @ID=1?
4.刪除存儲(chǔ)過程
DROP PROC dbo.MyProtest?
刪除語(yǔ)法簡(jiǎn)單說一下。不管刪除表,還是存儲(chǔ)過程,還是視圖,還是函數(shù)。刪除語(yǔ)法都是 Drop 關(guān)鍵字 +類型+名稱。
二.函數(shù)?
1.創(chuàng)建語(yǔ)法
?a.返回Nvarchar類型參數(shù)
CREATE FUNCTION Test ---創(chuàng)建語(yǔ)法 Create關(guān)鍵字 +類型 +名稱 (@iIden INT ---參數(shù) ) RETURNS NVARCHAR(50) --定義返回類型 WITH ENCRYPTION AS BEGINDECLARE @sUserName NVARCHAR(50) SELECT @sUserName=A.sUserNameFROM dbo.saUser A(NOLOCK)WHERE A.iIden=@iIdenRETURN @sUserNameEND
b.返回表變量的函數(shù)
CREATE FUNCTION Test ---創(chuàng)建語(yǔ)法 Create關(guān)鍵字 +類型 +名稱 (@iIden INT ---參數(shù) ) RETURNS @Table TABLE(iiden INT,sName NVARCHAR(50) ) WITH ENCRYPTION AS BEGINDECLARE @sUserName NVARCHAR(50)INSERT INTO @TableSELECT A.iIden,A.sUserNameFROM dbo.saUser A(NOLOCK)WHERE A.iIden=@iIdenRETURN END?
轉(zhuǎn)載于:https://www.cnblogs.com/DingKing/p/8267109.html
總結(jié)
以上是生活随笔為你收集整理的SqlServer知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux里面三剑客的重要作用
- 下一篇: 【Spark】SparkStreamin