我有一个物理表,可以在其中使用表中的select fieldvalue选择一个字段值。我需要将这些结果字段值作为模板的列,并将另一个fieldvalue作为基于fieldvalue的对应列值。
例如:从phytable中选择KeyField,ValueFile
假设KeyField X,Y,Z ValueFileld分别是A,B,C X-> A
我需要带有X,Y,Z的Temp表作为temptable的列名,而A,B,C作为对应列的行值。
我已经使用动态查询完成了同样的工作。
遵循的步骤
在内部循环中写入新临时表的alter table add column语句
// -------查询片段-------- //
SELECT Name into #ControlTable FROM Tbl_A
WHILE exists (SELECT [Name] FROM #ControlTable)
BEGIN
SELECT TOP 1 @columnname=[Name] FROM #ControlTable
@alterqry="ALTER TABLE Tbl_B Add column '+@columnname+' varchar(50)"
EXECUTE(@alterqry)
DELETE FROM #ControlTable WHERE [Name]=@columnname
END