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

 

相关文章