eg: 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
ALTER PROCEDURE teststr @input varchar(50) AS declare @pp1 varchar(50), @pp2 varchar(50), @pp3 varchar(50) set @pp3 = ' where b=''haha'''--这里的'怎么转意?'haha' set @pp1= 'select @pp2=a from ' + @input + @pp3 exec sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output
不太明白你的意思 ^_^ ALTER PROCEDURE teststr @tableName varchar(50),@inputColumnsName varchar(225) AS declare @pp1 varchar(50), set @pp1= 'select' + @inputColumnsName + ' from '+ @TableName exec (@pp1)
ALTER PROCEDURE teststr @input varchar(50) AS declare @pp1 nvarchar(500), --将定义改为nvarchar @pp2 varchar(50), @pp3 varchar(50) set @pp3 = ' where b=''haha'''--这里的'怎么转意?'haha' set @pp1= 'select @pp2=a from ' + @input + @pp3 exec sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output
添加SET QUOTED_IDENTIFIER OFF令"雙引號可用改為SET QUOTED_IDENTIFIER OFF--set @pp3 = ' where b='haha''--这里的'怎么转意?'haha' --上面這句改為 set @pp3=" where b='haha'" --用雙引號引用 set @pp1= 'select @pp2=a from ' + @input + @pp3 exec (@pp1)SET QUOTED_IDENTIFIER ON
ALTER PROCEDURE teststr @input nvarchar(50) AS declare @pp1 nvarchar(500), @pp2 varchar(50), @pp3 nvarchar(50) set @pp3 = ' where b=''haha''' set @pp1= 'select @pp2=a from ' + @input + @pp3 execute sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output好像来晚啦,请楼主注意数据类型nvarchar
谢谢大家,如果我要选两列出来怎么写? ALTER PROCEDURE teststr @input nvarchar(50) AS declare @pp1 nvarchar(500), --我注意到了,谢谢 @pp2 varchar(500), @pp3 nvarchar(500), --这个不用该吧 @pp4 varchar(500) --我新加的 set @pp3 = ' where b=''haha''' --谢谢 set @pp1= 'select @pp2=a ,@pp4=c from ' + @input + @pp3 --我想多选一列 execute sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output--????这句怎么写? --execute sp_executesql @pp1 ,N'@pp2 varchar(50) output', N'@pp2 varchar(50) output', @pp2 output, @pp4 output 这么写不行,不明白N的意思,请教大家,完事给分
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
AS
declare @pp1 varchar(50),
@pp2 varchar(50),
@pp3 varchar(50)
set @pp3 = ' where b=''haha'''--这里的'怎么转意?'haha'
set @pp1= 'select @pp2=a from ' + @input + @pp3
exec sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output
^_^
ALTER PROCEDURE teststr @tableName varchar(50),@inputColumnsName varchar(225)
AS
declare @pp1 varchar(50),
set @pp1= 'select' + @inputColumnsName + ' from '+ @TableName
exec (@pp1)
AS
declare @pp1 nvarchar(500), --将定义改为nvarchar
@pp2 varchar(50),
@pp3 varchar(50)
set @pp3 = ' where b=''haha'''--这里的'怎么转意?'haha'
set @pp1= 'select @pp2=a from ' + @input + @pp3
exec sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output
--上面這句改為
set @pp3=" where b='haha'" --用雙引號引用
set @pp1= 'select @pp2=a from ' + @input + @pp3
exec (@pp1)SET QUOTED_IDENTIFIER ON
AS
declare @pp1 nvarchar(500),
@pp2 varchar(50),
@pp3 nvarchar(50)
set @pp3 = ' where b=''haha'''
set @pp1= 'select @pp2=a from ' + @input + @pp3
execute sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output好像来晚啦,请楼主注意数据类型nvarchar
ALTER PROCEDURE teststr @input nvarchar(50)
AS
declare @pp1 nvarchar(500), --我注意到了,谢谢
@pp2 varchar(500),
@pp3 nvarchar(500), --这个不用该吧
@pp4 varchar(500) --我新加的
set @pp3 = ' where b=''haha''' --谢谢
set @pp1= 'select @pp2=a ,@pp4=c from ' + @input + @pp3 --我想多选一列
execute sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 output--????这句怎么写?
--execute sp_executesql @pp1 ,N'@pp2 varchar(50) output', N'@pp2 varchar(50) output', @pp2 output, @pp4 output 这么写不行,不明白N的意思,请教大家,完事给分
execute sp_executesql @pp1 ,N'@pp2 varchar(500) output', N'@pp4 varchar(500) output', @pp2 output, @pp4 output
我写错了。
AS
declare @pp1 varchar(50),
@pp2 varchar(50),
@pp3 varchar(50)set @pp3 = ' where b=''haha'''
set @pp1= 'select @pp2=a from '+@input+ @pp3exec sp_executesql @pp1 ,N'@pp2 varchar(50) output',@pp2 outputselect @pp2 结果