【发布时间】:2015-09-28 22:04:15
【问题描述】:
我想打印一个包含 200 个参考表名称(refTableA、refTableB 等)的列表以及每个表的选项集(refTableAID、Description、Code、SortOrder)。一些选项集是一条记录;其他可能包括 30 多条记录。 下面的脚本将 Description、Code 和 SortOrder 数据插入到临时表中。我不知道如何将表的名称 (refTableA) 插入 RefTableName 字段,将 ID (RefTableAID) 插入 RefTableNameId 字段。非常感谢任何帮助。
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL DROP TABLE #Temp
DECLARE @table nvarchar(150)
DECLARE @sqlinsert nvarchar(max)
DECLARE C1 CURSOR FOR SELECT TABLE_NAME FROM Information_schema.tables where TABLE_NAME like 'ref%'
Create table #Temp
(
RefTableName nvarchar(150),
RefTableNameId int,
Description nvarchar(100),
Code nvarchar(50),
SortOrder Decimal(5,2)
)
OPEN C1
FETCH next FROM C1 INTO @table
WHILE @@FETCH_STATUS =0
BEGIN
set @sqlinsert='Insert into #Temp (Description, Code, SortOrder)
Select Description,Code,SortOrder from *tbl*'
set @sqlinsert = REPLACE(@sqlinsert,'*tbl*',@table)
Print (@sqlinsert)
Exec (@sqlinsert)
FETCH next FROM C1 INTO @table
END
CLOSE C1
DEALLOCATE C1
SELECT * from #Temp
【问题讨论】:
标签: sql-server cursor temp-tables