declare @sql varchar(300)
declare @Result varchar(300)
set @sql =
'
declare @sql2 varchar(30)
set @sql2 = ''one ''
SELECT @sql2 = @sql2 + ''two''
select @sql2
'
exec (@sql )怎么把EXEC到的值赋到变量@Result中
declare @Result varchar(300)
set @sql =
'
declare @sql2 varchar(30)
set @sql2 = ''one ''
SELECT @sql2 = @sql2 + ''two''
select @sql2
'
exec (@sql )怎么把EXEC到的值赋到变量@Result中
解决方案 »
- 求行字符串相连的SQL,各位大师指点迷津啊!!!
- 在线等 关于数据库复制的问题
- 水晶报表登录sql失败,提示null用户
- 多谢 zlp321002(人生没有理想,那和咸鱼还有什么两样),请来接分
- 有谁能否提供一个仓库明细帐的SQL语句,急!!!!!
- 难道说不建立触发器(for insert),当向表中插入一条记录,触发器自动删除表中的相应项以强制实现数据完整性???
- 客户端数据备份问题
- 一个带真议的问题,请大家参加,评一下
- 我导数据库的时候,告知我:数据库'www_atec_com_cn'的日志已满。请备份该数据库的事务日志以释放一些日志空间,我怎么释放?
- c语言调用函数求2到n之间的素数
- isnull(sum(qty),0)及sum(isnull(qty,0))到底有何区别呢??
- 请问,怎么将值只保留小数点后面二位
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
--------------------------------------------------------------------------------动态sql语句基本语法
1 :普通SQL语句可以用Exec执行 eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名 declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确 3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中? declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num