嗨我正在写一个大的存储过程,它创建了一个大小为n列的动态报告表,前6个是常量,剩余部分取决于传递给过程的几个参数用所需的列创建表。TSQL在存储过程中动态添加列
,我遇到的问题是与以下TSQL
DECLARE @columnname VARCHAR(50)
SET @columnname = 'on_' + @description
IF NOT EXISTS(SELECT * FROM syscolumns WHERE id = OBJECT_ID('reports')
AND NAME = @columnname)
BEGIN
ALTER TABLE reports ADD @columnname VARCHAR(50) NULL
END
我在上面的代码中的ALTER TABLE语句@columnname越来越语法错误与此有关。
另外,因为我对此很陌生,所以我不确定这是否是最好的方法,或者TSQL中有更好的方法来生成所需的动态表。