【问题标题】:How to create SQL procedure to select dynamic column from dynamic table where dynamic table如何创建 SQL 过程以从动态表中选择动态列,其中动态表
【发布时间】: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


【解决方案1】:

试试这个CAST(@id AS VARCHAR)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 2012-07-26
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多