zoukankan      html  css  js  c++  java
  • SQL server 动态SQL对变量讲行赋值

    执行如下SQL

    declare @t int
    exec('set @t=1')
    print(@t)

    报如下错误!
    服务器: 消息 137,级别 15,状态 2,行 1
    必须声明变量
    '@t'

     

     实际就是变量与动态语句不能共享,

    那么换成这样就行,

    declare @t int
    set @t=1
    print(@t)


    exec('declare @t int;
    set @t=1;
    print(@t)
    ')


    但是有时候你一定要,变量与动态SQL结合起来。
    比如,你在存储过程中定义一个输出参数,◎COUNT int output
    而你在获得这个值的最好的方法就是动态SQL,那么有什么好的方式吗?
    那就要用到系统存储过程,sp_executesql

     
             
    declare @sql2 nvarchar(500)
               
    set @sql2 = 'select @COUNT = count(distinct('+@groupby+')) from TG_ENTRY where '+@sqlWhere
        
    execute sp_executesql 
              
    @sql2,
              N
    '@COUNT int output',
              
    @TOTAL_COUNT output
  • 相关阅读:
    [原创] Laravel 启动流程
    修改电脑的TTL返回值
    Apache启动错误解决方法
    RemodelanyWhere11.0.2673版本下载
    函数指针
    指针与数组
    青蛙跳台阶
    旋转数组的最小数字
    对大量人的年龄排序
    泛型算法一
  • 原文地址:https://www.cnblogs.com/luluping/p/1530521.html
Copyright © 2011-2022 走看看