Importei um monte de tabelas de um servidor sql antigo (2000) para meu banco de dados de 2008. Todas as mesas importados são prefixados com meu nome de usuário, por exemplo: jonathan.MovieData
. Na tabela, properties
ele é listado jonathan
como o esquema db. Quando escrevo procedimentos armazenados, agora tenho que incluir jonathan.
na frente de todos os nomes de tabelas, o que é confuso.
Como altero todas as minhas tabelas para dbo em vez de jonathan?
Resultado atual: jonathan.MovieData
Resultado desejado: dbo.MovieData
sql
sql-server
database
sql-server-2008
schema
Jonathan Hall
fonte
fonte
[DOMAIN\user].[tableName]
. Em geral, na comunidade do SQL Server, os identificadores entre aspas Transact-SQL são usados ([
e]
), evite, a"
menos que haja um requisito específico para isso.[
e]
, como qualquer outro caso, quando quiser ser preciso sobre o nome de um objeto SQL.[domain\user123].TableName
.Você pode executar o seguinte, o que irá gerar um conjunto de instruções ALTER sCHEMA para todos os seus talbes:
Em seguida, você deve copiar e executar as instruções no analisador de consultas.
Aqui está um script mais antigo que fará isso para você também, acho, alterando o proprietário do objeto. Ainda não tentei em 2008, no entanto.
Peguei neste site .
Ele também fala sobre fazer o mesmo para procedimentos armazenados, se necessário.
fonte
sys.tables
(um subconjunto de sys.objects).Ref: ALTER SCHEMA
fonte
Mova a tabela do esquema dbo para MySchema:
Mova a tabela de MySchema para o esquema dbo:
fonte
Acabei de postar isso para uma pergunta semelhante: No sql server 2005, como altero o "esquema" de uma tabela sem perder nenhum dado?
Uma ligeira melhoria na excelente resposta do sAeid ...
Eu adicionei um exec para que este código seja executado automaticamente e adicionei uma união na parte superior para que eu pudesse alterar o esquema de ambas as tabelas E procedimentos armazenados:
Eu também tive que restaurar um dbdump e descobri que o esquema não era dbo - passei horas tentando fazer com que o Sql Server management studio ou visual studio transferisse os dados para alterar o esquema de destino ... Acabei apenas executando isso contra o restaurado despeje no novo servidor para fazer as coisas do jeito que eu queria.
fonte
Você pode alterar esquemas de alteração em lote de vários objetos de banco de dados, conforme descrito nesta postagem:
Como alterar o esquema de todas as tabelas, visualizações e procedimentos armazenados em MSSQL
fonte
Maneira de fazer isso por algo individual:
alterar esquema dbo transfer jonathan.MovieData
fonte
Eu tive um problema semelhante, mas meu esquema tinha uma barra invertida. Nesse caso, inclua os colchetes ao redor do esquema.
fonte
Abra o SQL Server como conta SA e clique em nova consulta após as consultas abaixo
em seguida, clique em executar para reverter todo o esquema de propriedade de volta para a conta SA
fonte
ms-help: //MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/0a760138-460e-410a-a3c1-d60af03bf2ed.htm
ALTER SCHEMA schema_name TRANSFER securable_name
fonte