CREATE TABLE ColumnResults
(
TableName VARCHAR(60)
)
GO
INSERT INTO ColumnResults
SELECT name
FROM sysobjects
WHERE id IN (SELECT id FROM syscolumns
WHERE name like 'EmployeeID%')
ORDER BY name
SELECT * FROM ColumnResults
我现在想获取ColumnResults
中的结果集,并用它来查询以下内容:
SELECT TOP 100
FROM (TABLE NAME FROM INITIAL RESULT SET or "ColumnResults" goes Here)
继续对每个结果行
答案 0 :(得分:0)
尝试一下-
DECLARE db_cursor CURSOR FOR
SELECT * FROM ColumnResults
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
select top 100 from @name
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
答案 1 :(得分:0)
您将要使用以下内容:
DROP TABLE #TableName
CREATE TABLE #TableName
(
TableName VARCHAR(200)
)
INSERT INTO #TableName
(
TableName
)
SELECT name FROM sys.objects
WHERE name LIKE 'employeeID%'
DECLARE @TableCount AS INT = (SELECT COUNT(*) FROM #TableName)
WHILE @TableCount > 0
BEGIN
DECLARE @TableName AS VARCHAR(200) = (SELECT TOP 1 TableName FROM #TableName)
DECLARE @SQL NVARCHAR(200)
SET @SQL = N'SELECT TOP 100 * FROM ' + '[dbo]' + '.' + @TableName + ''
--PRINT @SQL
EXEC (@SQL)
SET @TableCount = @TableCount - 1
DELETE FROM #TableName WHERE TableName IN (SELECT TOP 1 TableName FROM #TableName )
END
确保使用正确的架构代替[dbo]。我也看不到您有一个名为employeeID的表名。我认为这可能是表格中的一列。因此,也许只是将Employee作为表名进行过滤。