set @sqls=('select @a=count(*) from '+@sTargetDBID+'.dbo.nodetable where parentnode='+rtrim(@iTargetNodeID)+' and nodename=(select nodename from '+@sSourceDBID+'.dbo.nodetable where nodeid='+rtrim(@iSourceNodeID)+')') exec sp_executesql @sqls,N'@a int output',@num output select @num --就是查询取得的值
declare @num int, @sqls nvarchar(4000) set @sqls='SELECT a=count(id) FROM ' + @Tables + @strFilter --确认这两个变量是字符型
exec sp_executesql @sqls,N'@a int output',@num output select @num
to davytao1018(爱的代价): Declare @i int,@s nvarchar(2000) set @s='SELECT a=count(ID) FROM table' execute sp_executesql @s,N'@a int output',@i output select @i我返回了二个结果,一个是字段a,是我需要的结果集,但是@i为NUll,怎么办?
set @s='SELECT count(id) FROM ' + @Tables + @strFilter
execute sp_executesql @s,'@i int output',@i out
select @i
报错
Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar'.
服务器: 消息 214,级别 16,状态 3,过程 sp_executesql,行 3
Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar'.
服务器: 消息 170,级别 15,状态 1,行 3
Line 3: Incorrect syntax near 'sp_execuesql'.
---------------------------
declare @num int,
@sqls nvarchar(4000)
set @sqls=('select @a=count(*) from '+@sTargetDBID+'.dbo.nodetable where parentnode='+rtrim(@iTargetNodeID)+' and
nodename=(select nodename from '+@sSourceDBID+'.dbo.nodetable where nodeid='+rtrim(@iSourceNodeID)+')')
exec sp_executesql @sqls,N'@a int output',@num output select @num --就是查询取得的值
declare @num int,
@sqls nvarchar(4000)
set @sqls='SELECT a=count(id) FROM ' + @Tables + @strFilter --确认这两个变量是字符型
exec sp_executesql @sqls,N'@a int output',@num output
select @num
Declare @i int,@s nvarchar(2000)
set @s='SELECT a=count(ID) FROM table'
execute sp_executesql @s,N'@a int output',@i output
select @i我返回了二个结果,一个是字段a,是我需要的结果集,但是@i为NUll,怎么办?
declare @s_sql nvarchar(100)
declare @s_parm nvarchar(100)set @s_sql = N'SELECT @i_i = count(*) FROM ' + + @Tables + @strFilter
set @s_parm = N'@i_i integer output'
execute sp_executesql @s_sql,@s_parm,@i_i output
select @i_i