SQL Server 2008 - bancos de dados de backup com mais de 50 caracteres

1

Estou usando o T-SQL para fazer backup dos meus bancos de dados do MS SQL 2008:

BACKUP DATABASE @name TO DISK = @fileName  

O problema ocorre quando se trata dos bancos de dados com o comprimento do nome maior que 50 caracteres como este:

Euentãoreceboesteerro:

Eu sei que o tamanho máximo de um nome de banco de dados é de 50 caracteres, mas esse banco de dados foi criado automaticamente pelo SharePoint, portanto, suponho que ele seja legal de alguma forma.

É como se troncosse o nome do banco de dados para os primeiros 50 caracteres, então é claro que não é possível encontrar o banco de dados.

Por favor me ajude a ter esses bancos de dados no backup, estes são críticos. Obrigado!

EDITAR:

Eu finalmente encontrei porque recebi este erro, graças a mfinni .

Esta é a parte do meu script que causou o problema:

DECLARE @name VARCHAR(50)

Eu simplesmente mudei para:

DECLARE @name VARCHAR(200)

Obrigado novamente!

    
por Jonathan Rioux 01.05.2012 / 21:07

2 respostas

3

O comprimento máximo de caracteres de um nome de banco de dados no SQL Server é 128 caracteres para o SQL Server 2008 R2. Portanto, você pode fazer backup de um banco de dados com mais de 50 caracteres com o comando BACKUP no T-SQL (veja abaixo, por exemplo). Você precisa garantir que sua variável @name possa conter mais de 50 caracteres.

Exemplo:

CREATE DATABASE MoreThan50characters_abcdefghijklmnopqrstuvwxyz12345;

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

Me dá esta saída:


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).
    
por 01.05.2012 / 21:34
0

Postagem para que você possa marcar uma resposta: Estou supondo que a variável @name esteja definida como 50 caracteres de comprimento? (Embora agora eu saiba que é o caso.)

    
por 02.05.2012 / 00:57