这是我第一次来这里,我想问一个问题。
这是我的存储过程...
ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)
as
begin
if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('+ @DocumentName +') and Uploader = ('+ @Uploader +')')
end
问题是......存储过程将DocumentName和Uploader参数作为列名读取,而不是值本身。我已经尝试使用别名和其他我从互联网上搜索过的东西,但它们不起作用。
这可能是背后的问题?哦,BTW我是Dynamic SQL的新手。感谢。
答案 0 :(得分:1)
您应该在参数之前和之后向动态sql添加''
个字符,如下所示:
ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)
as
begin
if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('''+ @DocumentName +''') and Uploader = ('''+ @Uploader +''')')
end