0
我正在使用下面的代碼將db上下文切換爲主並創建過程並設置啓動腳本。在運行時切換數據庫上下文
BEGIN TRY
DECLARE @dbName NVARCHAR(100)
SET @dbName = DB_NAME()
USE MASTER
IF NOT EXISTS (
SELECT name
FROM sys.objects
WHERE object_id = OBJECT_ID('spSetTrustWorthyOn')
)
EXEC (
'CREATE PROCEDURE spSetTrustWorthyOn
AS
BEGIN
ALTER DATABASE [' + @dbName + '] SET TRUSTWORTHY ON
END'
)
EXECUTE sp_procoption 'spSetTrustWorthyOn'
,'startup'
,'ON'
END TRY
BEGIN CATCH
END CATCH
GO
現在問題是當我想切換回現有的數據庫。我找不到任何方式回到我原來的數據庫。
我也不能硬編碼數據庫,因爲這是動態查詢,我們有多個數據庫。
任何幫助將不勝感激。
感謝
感謝您的回覆,但商店proc應該是主數據庫的一部分。 –
你試過這個腳本嗎?由於「EXECUTE master..sp_executesql」語句中的顯式數據庫限定,它將在master中創建存儲過程。執行後數據庫上下文將保留在用戶數據庫中。 –
很酷,我沒有看到'EXECUTE master..sp_executesql'這一行。感謝TON,因爲我一直在努力完成這項工作。我使用了sp_execute sql這個想法,但我很笨,以至於我可以這樣調用。 –