简体   繁体   English

如何创建 SQL 过程以从动态表中选择动态列

[英]How to create SQL procedure to select dynamic column from dynamic table where dynamic table

I need to create procedure to select dynamic column from dynamic data where dynamic value我需要创建程序来从动态数据中选择动态列,其中动态值

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

When execute show this error执行时显示此错误

Conversion failed when converting the nvarchar value 'Select Email From Member where id= ' to data type int.将 nvarchar 值“Select Email From Member where id=”转换为数据类型 int 时转换失败。

when delete where id= '+@id and set 'where id=1' the procedure success, but I need use where id=@id . when delete where id= '+@id and set 'where id=1'过程成功,但我需要使用where id=@id

试试这个CAST(@id AS VARCHAR)

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM