这个玩艺儿错在哪里啊?搞了半天也不明白. 要传出变量,动态sql要用sp_executesql来执行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 动态SQL语句的一些常见写法1:普通SQL语句可以用Exec执行eg: Select * from tableName Exec('select * from tableName') sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2:字段名,表名,数据库名之类作为变量时,必须用动态SQLeg: 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, @sqlsset @sqls='select count(*) from ' + @servername + '.a.dbo.b'exec(@sqls)我如何能将exec执行的结果存入变量@num中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 outputselect @num 关于SQLserver的数据查询(重复信息的除去) 求解一个字符串的循环累加问题,在线 怎样将2006-6-20 这种格式替换成 2006-6-20 11:12:26 ?? EXEC动态填充表赋空值 ----如何列转行??? 关于Select *,identity into table1 from table2 的问题--目前非常迷惑 菜鸟来了,请问为什么会这样 80大洋求一个SQL 在mssql2000中,DTS支持对远程服务器的数据转换吗? 求有关Informix数据库方面的资料! 这个替换语句可以写吗?怎么写?在线等!! 请问怎么写两个表之间的check 约束
1:普通SQL语句可以用Exec执行eg: Select * from tableName
Exec('select * from tableName')
sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2:字段名,表名,数据库名之类作为变量时,必须用动态SQLeg:
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中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