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

  • 相关阅读:
    Kafka之消费者与消费者组
    Kafka之生产者
    基于Redis+Lua的分布式限流
    限流方案常用算法讲解
    分布式服务限流
    微服务框架服务调用与容错
    ZooKeeper实现服务注册中心
    微服务注册中心
    让我自己来整理
    Netty框架
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/5498960.html
Copyright © 2011-2022 走看看