看板 Database 關於我們 聯絡資訊
DB是MSSQL 2008 請問各位大大, 我想先判斷Db1這個資料庫是否存在,存在的話就將它刪除, 我將SSMS產生的刪除資料庫指令放到BEGIN...END區塊中, IF EXISTS (SELECT * FROM sys.databases WHERE name = N'Db1') BEGIN EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'Db1' GO USE [master] GO DROP DATABASE [Db1] GO END 但是執行後會有錯誤,請問這個地方要怎麼調整呢? 謝謝。 訊息 102,層級 15,狀態 1,行 3 接近 'Db1' 之處的語法不正確。 訊息 3701,層級 11,狀態 1,行 1 無法 卸除 資料庫 'Db1',因為它不存在或您沒有權限。 訊息 102,層級 15,狀態 1,行 1 接近 'END' 之處的語法不正確。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.188.218
Adonisy:msdb.dbo.sp_delete_database_backuphistory你一定要嗎? 08/22 00:12
On1earth:那個是SSMS產生的,msdn寫說是刪除備份及還原記錄資料表 08/22 00:40
On1earth:我也不確定要不要耶 08/22 00:40
TeemingVoid:請將 BEGIN..END 裏頭的那些 GO 去掉。 08/22 01:36
TeemingVoid:GO 代表一個批次的結尾,結果,第一個 GO 以後的都變 08/22 01:37
TeemingVoid:成另一回事了。 08/22 01:37
On1earth:謝謝T大,所以如果這樣寫會變成IF...EXEC一段 08/22 19:07
On1earth:USE...是另外一段指令的意思嗎? 08/22 19:08
TeemingVoid:是的。 08/22 21:15
Adonisy:其實應該只是沒權力,你的帳號沒有 sysdb msdb的權力 08/23 11:07
On1earth:了解,謝謝。原因是像T大所說,去掉GO就可以了 08/23 23:42