我需要创建一个程序来从动态数据中选择动态值
Craete procedure SelectColumn
@tableName NVARCHAR(MAX),
@id int,
@ColumnName NVARCHAR(MAX)
as
begin
DECLARE @SQLString1 NVARCHAR(MAX)
SET @SQLString1= 'Select '+ @ColumnName + ' From ' + @TableName +' where id= '+@id
print @SQLString1
EXEC (@SQLString1)
end
执行时显示此错误
转换nvarchar值时转换失败'选择电子邮件 来自会员ID ='数据类型int。
when delete where id= '+@id and set 'where id=1'
程序成功,但我需要使用where id=@id
。
答案 0 :(得分:1)
试试这个CAST(@id AS VARCHAR)
SET @SQLString1= 'Select '+ @ColumnName + ' From ' + @TableName +' where id= '+CAST(@id AS VARCHAR)