动态SQL语句

可管白打吊年

可管白打吊年

2016-01-29 16:46

动态SQL语句,动态SQL语句

1:普通SQL语句可以用Exec执行
eg:   Select * from tableName
      Exec('select * from tableName')
      sp_executesql N'select * from tableName'    -- 请注意字符串前一定要加N

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
eg:  
declare @fname varchar(20)
set @fname = '[name]'
Select @fname from sysobjects                     -- 错误
Exec('select ' + @fname + ' from sysobjects')     -- 请注意 加号前后的 单引号的边上要加空格
exec sp_executesql N' select ' + @fname + ' from sysobjects'
当然将字符串改成变量的形式也可
    declare @s varchar(1000)
    set @s = 'select ' + @fname + ' from sysobjects'
    Exec(@s)                -- 成功
    exec sp_executesql @s   -- 此句会报错

    declare @s Nvarchar(1000)  -- 注意此处改为nvarchar(1000)
    set @s = 'select ' + @fname + ' from sysobjects'
    Exec(@s)                -- 成功   
    exec sp_executesql @s   -- 此句正确,

3: 输出参数
eg:
declare @num,
        @sqls
set @sqls='select count(*) from  ' + @servername + '.a.dbo.b'
exec(@sqls)
我如何能将exec执行的结果存入变量@num中

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

declare @num int,
        @sqls nvarchar(4000)
set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
exec sp_executesql @sqls,N'@a int output',@num output
select @num

展开更多 50%)
分享

猜你喜欢

动态SQL语句

SQLServer
动态SQL语句

通过非动态SQL语句在SQL Server中执行动态查询

编程语言 网络编程
通过非动态SQL语句在SQL Server中执行动态查询

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

动态SQL四种类型的语句格式

SQLServer
动态SQL四种类型的语句格式

SQL语句示例

编程语言 网络编程
SQL语句示例

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQl 语句(常见)

编程语言 网络编程
SQl 语句(常见)

搜索sql语句

编程语言 网络编程
搜索sql语句

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《百万亚瑟王》每周活动秘境内容

《百万亚瑟王》每周活动秘境内容

SQL语句和存储过程 查询语句的流程控制

SQL语句和存储过程 查询语句的流程控制
下拉加载更多内容 ↓