运行 table 名称来自 sys.tables SQL Server 2008R2
Run table names pulled from sys.tables SQL Server 2008R2
我需要识别今天由界面创建的 tables,我可以使用以下查询来完成:
注意:界面每天更改 table 个名称。
SELECT [name] AS [TableName]
FROM sys.tables
WHERE NAME LIKE '_XYZExport_%'
AND CAST(create_date AS DATE) = CAST(GETDATE() AS DATE)
ORDER BY NAME
我需要的:
一旦提取了 table 个名称,我需要将其数据转储到一个新的 table 中。这怎么能轻松做到?
Example:
我的查询返回了以下 tables:
- _XYZExport_B02
- _XYZExport_B12
- _XYZExport_B22
我想获取这些返回的 table 并使用 Union All 将它们的数据插入现有存档 table。
任何帮助都会很棒!
您的 "cursor" 标签走在正确的轨道上。我建议创建一个插入语句并在每个游标循环中执行它。
DECLARE @TableName sysname
DECLARE @SQLInsert VARCHAR(100)
DECLARE TableNamesCursor CURSOR FAST_FORWARD READ_ONLY FOR
SELECT [name] AS [TableName]
FROM sys.tables
WHERE NAME LIKE '_XYZExport_%'
AND CAST(create_date AS DATE) = CAST(GETDATE() AS DATE)
ORDER BY NAME
OPEN TableNamesCursor
FETCH NEXT FROM TableNamesCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQLInsert = 'INSERT INTO ArchiveTable SELECT * FROM ' + @TableName
EXEC sp_executesql @SQLInsert
FETCH NEXT FROM TableNamesCursor INTO @TableName
END
CLOSE TableNamesCursor
DEALLOCATE TableNamesCursor
希望能助你一臂之力。
诺埃尔
我需要识别今天由界面创建的 tables,我可以使用以下查询来完成:
注意:界面每天更改 table 个名称。
SELECT [name] AS [TableName]
FROM sys.tables
WHERE NAME LIKE '_XYZExport_%'
AND CAST(create_date AS DATE) = CAST(GETDATE() AS DATE)
ORDER BY NAME
我需要的: 一旦提取了 table 个名称,我需要将其数据转储到一个新的 table 中。这怎么能轻松做到?
Example:
我的查询返回了以下 tables:
- _XYZExport_B02
- _XYZExport_B12
- _XYZExport_B22
我想获取这些返回的 table 并使用 Union All 将它们的数据插入现有存档 table。
任何帮助都会很棒!
您的 "cursor" 标签走在正确的轨道上。我建议创建一个插入语句并在每个游标循环中执行它。
DECLARE @TableName sysname
DECLARE @SQLInsert VARCHAR(100)
DECLARE TableNamesCursor CURSOR FAST_FORWARD READ_ONLY FOR
SELECT [name] AS [TableName]
FROM sys.tables
WHERE NAME LIKE '_XYZExport_%'
AND CAST(create_date AS DATE) = CAST(GETDATE() AS DATE)
ORDER BY NAME
OPEN TableNamesCursor
FETCH NEXT FROM TableNamesCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQLInsert = 'INSERT INTO ArchiveTable SELECT * FROM ' + @TableName
EXEC sp_executesql @SQLInsert
FETCH NEXT FROM TableNamesCursor INTO @TableName
END
CLOSE TableNamesCursor
DEALLOCATE TableNamesCursor
希望能助你一臂之力。
诺埃尔