Sql server 当列名作为另一个tabl的feild值出现时,动态地将列添加到临时表中
我有一个物理表,在其中我可以使用select fieldvalue从表中选择字段值。我需要这些结果字段值作为一个可诱惑的列,另一个fieldvalue作为基于fieldvalue的相应列值 例如:从表中选择KeyField、ValueFile 假设键域X,Y,Z ValueFileld对应于X->ASql server 当列名作为另一个tabl的feild值出现时,动态地将列添加到临时表中,sql-server,pivot,dynamic-sql,Sql Server,Pivot,Dynamic Sql,我有一个物理表,在其中我可以使用select fieldvalue从表中选择字段值。我需要这些结果字段值作为一个可诱惑的列,另一个fieldvalue作为基于fieldvalue的相应列值 例如:从表中选择KeyField、ValueFile 假设键域X,Y,Z ValueFileld对应于X->A 我需要带有X、Y、Z的临时表作为可诱惑的列名,A、B、C作为相应列的行值。我已经使用动态查询完成了相同的操作 接下来的步骤 将字段值插入临时表 在临时表中循环 逐列取1 新临时表的内部循环writ
我需要带有X、Y、Z的临时表作为可诱惑的列名,A、B、C作为相应列的行值。我已经使用动态查询完成了相同的操作 接下来的步骤
- 将字段值插入临时表
- 在临时表中循环
- 逐列取1
- 新临时表的内部循环write 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