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
相关文章
相关标签/搜索