我有一個特定的腳本,需要在SQL Server中的所有數據庫中執行。我已使用以下邏輯來遍歷除系統數據庫之外的所有數據庫。如何在所有數據庫中使用'use'命令來執行sql中的某些腳本
declare @DBName varchar(500)
DECLARE @Database_id int
DECLARE @Query varchar(MAX)
select @Database_id = MIN(database_id) from sys.databases where database_id>4
while @Database_id is not null
begin
select @DBName=name from sys.databases where [email protected]_id
set @Query = 'Use'[email protected]
--some script
Print ''[email protected]+''
exec (@Query)
select @Database_id = MIN(database_id) from sys.databases where database_id>4 AND database_id>@Database_id
end
但問題是我不能對變量使用'Use'命令。有沒有其他方法可以使用「使用」命令來打開數據庫?
我不想使用sp_MSforeachdb
命令,因爲我的查詢太長。 任何幫助,將不勝感激!
是否要在實例中的所有數據庫上運行腳本,還是隻需要執行SP的用戶提供的特定DB? – SQLmojoe
我想在實例中的所有數據庫中運行 –
我想在除系統數據庫之外的所有數據庫中運行腳本。 –