zoukankan      html  css  js  c++  java
  • SqlServer知识点

    在公司天天写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
  • 相关阅读:
    jQuery EasyUI API 中文文档 可调整尺寸
    jQuery EasyUI API 中文文档 链接按钮(LinkButton)
    jQuery EasyUI API 中文文档 手风琴(Accordion)
    jQuery EasyUI API 中文文档 表单(Form)
    jQuery EasyUI API 中文文档 组合(Combo)
    jQuery EasyUI API 中文文档 布局(Layout)
    jQuery EasyUI API 中文文档 拆分按钮(SplitButton)
    jQuery EasyUI API 中文文档 菜单按钮(MenuButton)
    jQuery EasyUI API 中文文档 搜索框
    jQuery EasyUI API 中文文档 验证框(ValidateBox)
  • 原文地址:https://www.cnblogs.com/DingKing/p/8267109.html
Copyright © 2011-2022 走看看