我的SQL Server中有多個數據庫。所有數據庫結構相同,但數據不同。這些數據庫用於存儲傳感器數據,因此每個傳感器都有自己獨立的SQL Server數據庫。查詢所有數據庫記錄的數量
我想要一個查詢來選擇數據庫名稱和每個數據庫的特定表中的記錄數。
我試着用遊標。我收到錯誤說名稱{query}不是一個有效的標識符。我的光標如下:
Declare @dbname Varchar (50), @sql Varchar(1000)
Declare db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name LIKE 'EP505-%' -- All sensors of EP505
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @dbname
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql= 'SELECT Count(*) FROM [' + @dbname + '].dbo.TimeLine'
EXEC @sql
FETCH NEXT FROM db_cursor INTO @dbname
END
CLOSE db_cursor
DEALLOCATE db_cursor
在我需要的數據庫名稱,併爲TimeLine
表中的記錄數輸出。
什麼是實現我所嘗試的最佳方式。
嘗試'EXEC(@sql)'否則SQL Server將解釋你'@ sql'內容作爲存儲過程或用戶定義的函數,而不是查詢字符串。 –
它的工作原理,我如何獲得@dbname? – progrAmmar
我明白了。謝謝 – progrAmmar