zoukankan      html  css  js  c++  java
  • sp_executesq用法

    第一种用法:

    --@sqlstring :就是你要执行的sql语句字符串
    --@ParmDefinition: @sqlstring里边用到的参数在这里声明 输出的参数要加output
    --sp_executesql:
    --第一个参数sqlstring 就是执行的sql字符串了
    --第二个参数@ParmDefinition是@sqlstring里边用到的参数在这里声明 输出的参数要加output
    --最后的参数加output的参数是输出的参数(需要和外部的相对应的变量建立关联)
    --中间的参数就是@sqlstring 里边用到的参数(需要和外部的相对应的变量建立关联)
    --最后你可以 select 输出的参数 来查询(select @count)

    --小结:1.@sqlString直接写需要执行的语句,动态参数用@custid形式标记
    -- 2.@parmDefinition:为标记动态语句里面的参数及类型,返回标记output
    -- 3.EXECUTE sp_executesql:执行,第一常数为动态sql语句,第二个参数为为动态sql语句参数,后面的参数为对应参数传入的值
    GO
    DECLARE @id INT;
    DECLARE @sqlString NVARCHAR(500);
    DECLARE @parmDefinition NVARCHAR(500);
    DECLARE @count INT;

    SET @id=144;

    SET @sqlString=N'SELECT * FROM dbo.tb_invite_code WHERE custid=@custid ';
    SET @sqlString=@sqlString+N' set @out=(SELECT COUNT(1) FROM dbo.tb_invite_code WHERE custid=@custid)';
    SET @parmDefinition=N'@custid int,@out int output';

    EXECUTE sp_executesql @SQLString,@parmDefinition,@custid= @id,@out= @count OUTPUT
    SELECT @count
    GO

    第二中用法

    --注意:
    --1.EXEC(@sql):必须以这种变量形式来执行,直接拼接字符串会报错
    --2.在@sql拼接中,如果有一个参数为NULL,则拼接出来的也为NULL,一般用ISNULL(@table,'Trade')来判断
    --3.字符串拼接,就要将常数全部转换为字符串CAST(@havenum AS NVARCHAR(100))
    --4.在拼接的时候,如果常数为字符串,参数两边要加上''
    go
    DECLARE @havenum INT ,@isDel INT,@sql NVARCHAR(2000),@table NVARCHAR(100)
    SET @table=NULL
    SET @havenum=0
    SET @isDel=0
    SET @sql='SELECT * FROM dbo.Share'+ISNULL(@table,'Trade')+' WHERE HaveNum='''
    +CAST(@havenum AS NVARCHAR(100))+''''
    +'and isDel='+CAST(@isdel AS NVARCHAR(100))
    PRINT @sql
    EXEC(@sql)
    go

  • 相关阅读:
    用Axure进行原型设计
    Axure使用——创建折叠菜单
    详解Java的自动装箱与拆箱(Autoboxing and unboxing)
    Java基本类型和引用类型
    Java中的基本类型和引用类型变量的区别
    让图片变成圆形
    安卓----Spinner
    Win10安装CAD2006
    Winform关于未找到元数据文件.exe和不包含适合于入口点的静态“Main”方法
    启用了优化或没有调试信息
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/5498960.html
Copyright © 2011-2022 走看看