SQL ServerSqlServer知识点

每当店天天写Sql写,存储过程,但是商家工具模板把创建的语都勾好了,只负责写里面的逻辑,久而久之,创建语句都不会见刻画了。还有局部知识点都死模糊,平常使用的时段还不知情,稀里乱的就算于于是。在这里整理一下。巩固复习。

一.存储过程。

1.储存过程看似编程语言的中的函数,方法。将Sql语句封装于里,方便调用。

2.第一看下开创无参数存储过程语法。

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
中之加密注释来更创设加密经过。
说白了就是不怕是针对性存储过程进展加密。这个自时时用,上面以恶就非常用了,在此地询问一下。

3.执存储过程

EXEC dbo.MyProTest @ID=1

 

4.删减存储过程

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

 

相关文章