Sql-Server
SQL Server 2008 - 超過 50 個字元的備份數據庫
我正在使用 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).