如何创建SQL过程从动态表所在的动态表中选择动态列

时间:2016-04-06 09:42:35

标签: sql sql-server stored-procedures

我需要创建一个程序来从动态数据中选择动态值

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

1 个答案:

答案 0 :(得分:1)

试试这个CAST(@id AS VARCHAR)

SET @SQLString1= 'Select '+ @ColumnName + ' From ' + @TableName +' where id= '+CAST(@id AS VARCHAR)