【发布时间】:2016-04-06 09:42:34
【问题描述】:
我需要创建过程来从动态数据中选择动态列,其中动态值
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 值 'Select Email 时转换失败 从 Member where id= ' 到数据类型 int。
when delete where id= '+@id and set 'where id=1'程序成功,但我需要使用where id=@id。
【问题讨论】:
-
SQL 注入可能。
-
标记使用的 dbms。 (该代码远不符合 ANSI SQL。)
-
@jarlh 请解释一下
-
告诉我们您正在使用哪种数据库产品!
-
@lad2025 当编辑 where id=@id 到 where id=1 时查询成功
标签: sql sql-server stored-procedures