Sql-Server

SQL Server 2008 - 超過 50 個字元的備份數據庫

  • May 1, 2012

我正在使用 T-SQL 備份我的 MS SQL 2008 數據庫:

BACKUP DATABASE @name TO DISK = @fileName  

當涉及名稱長度大於 50 個字元的數據庫時,會出現問題,如下所示:

在此處輸入圖像描述

然後我得到這個錯誤:

在此處輸入圖像描述

我知道數據庫名稱的最大長度是 50 個字元,但是這個數據庫是由 SharePoint 自動創建的,所以我認為它在某種程度上是合法的。

這就像如果它將數據庫名稱中繼到前50個字元,那麼它當然找不到數據庫。

請幫我備份這些數據庫,這些很關鍵。謝謝!

編輯:

感謝mfinni,我終於找到了為什麼會出現這個錯誤。

這是我的腳本中導致問題的部分:

DECLARE @name VARCHAR(50)

我只是改為:

DECLARE @name VARCHAR(200)

再次感謝!

對於 SQL Server 2008 R2,SQL Server 中數據庫名稱的最大字元長度為128 個字元。因此,您可以使用 T-SQL 中的命令備份超過 50 個字元的BACKUP數據庫(例如,請參見下文)。您需要確保您的@name變數可以容納超過 50 個字元。

例子:

CREATE DATABASE MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345;

BACKUP DATABASE MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345
TO DISK = 'MyFile_deleteme.bak';

給我這個輸出:


Processed 168 pages for database 'MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345', file 'MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345' on file 3.
Processed 2 pages for database 'MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345', file 'MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345_log' on file 3.
BACKUP DATABASE successfully processed 170 pages in 0.246 seconds (5.390 MB/sec).

引用自:https://serverfault.com/questions/385017