Solução de problemas de banco de dados projeto, desenvolvimento e problemas de implantação
Você pode encontrar os seguintes problemas ao criar, modificar, criar ou implantar projetos de banco de dados:
Erros ao criar projetos de banco de dados
Erros ao tentar usar o banco de dados do SQL servidor 2000 para validação em time de design
Erros de objetos de banco de dados
Uso de palavras reservadas novo no Microsoft SQL servidor 2005
Diferenças na linha de comando da compilação
Chaves simétricas, assimétrica de chaves e certificados
Dependências e scripts de atualização
Erros ao adicionar-se sistema autônomo um usuário
Identificadores entre aspas podem causar problemas com o projeto Re-load
O estado interno do banco de dados é divergente e seu Sumário
Pesquisar de texto completo
Objetos do SQLCLR
Desfazer Pending Changes
Usuário do Windows NT ou agrupar não encontrado
Duplicar objeto nomes e excluir arquivos
criar ASSEMBLY não oferece suporte a referência a um arquivo
Problemas de conversão do SQL servidor 2000 para o SQL servidor 2005
Banco de dados e nomes qualificados de servidor
Propriedade suporte ampliado
Desempenho do esquema de banco de dados de importação
Navegação de erros de compilação
Projetos de banco de dados e a configuração confiável
Servidores vinculados e scripts de importação
Erros de sintaxe ao usar o cross-banco de dados referências
Índices XML com propriedades estendidas
Problemas de permissões com o Team Foundation compilação
Avisos de token inesperados durante a compilação
Implantação de linha de comando de um x computador 64 para um servidor de banco de dados remoto falhar
Erros ao criar projetos de banco de dados
Uma mensagem de erro será exibida se você criar um projeto de banco de dados e você não tem permissões para criar um banco de dados na sua instância local do Microsoft SQL servidor usado para validação em time de design.
Observação: |
---|
Use uma ferramenta sistema autônomo o SQL servidor Management Studio para configurar suas permissões para sua instância do SQL servidor.Se você não pode efetuar fazer logon com credenciais administrativas, talvez seja necessário peça ao administrador para conceder permissões para criar bancos de dados no SQL servidor. |
Você deve garantir que o nome de instância especificado para o banco de dados de validação em time de design está correto.Para obter mais informações, consulte Como: Especifique o local instância do SQL servidor para usar para validação em time de design.
Se você executar o Visual Studiosem permissões administrativas, pode aparecer o erro "criar DATABASE permissão negada no banco de dados 'mestre'". Para resolver esse erro, um usuário com permissões sysadmin deve execute o seguinte script no seu banco de dados de validação em time de design:
USE master
GO
GRANT EXECUTE ON sp_detach_db TO public
GO
Erros ao tentar usar o banco de dados do SQL servidor 2000 para validação em time de design
Um erro ocorrerá se você alterar o banco de dados que é usado para validação em time de design a uma instância do SQL servidor 2000 e, em seguida, tente criar ou modificar um projeto de banco de dados.O erro pode ler algo como "Sintaxe incorreta próximo a agente de ENABLE".O banco de dados de time de design validação usa SQL Server 2005 recursos.
Observação: |
---|
Você deve especificar uma instância válida de um SQL Server 2005 banco de dados do banco de dados de validação em time de design. Para obter mais informações, consulte Como: Especifique o local instância do SQL servidor para usar para validação em time de design. |
Erros de objetos de banco de dados
Quando um objeto de banco de dados contém um ou mais erros de sintaxe, o ícone para o banco de dados exibe o ícone de erro (um vermelho "!"), e mensagens de erro associada aparecem no Lista de erros janela.O número de linha correto é relatado erros retornados durante a validação de time de design por instância local do SQL servidor.No entanto, o número da coluna é sempre relatado para ser coluna um.A linha e de coluna são erros de sintaxe SQL corretas.
Observação: |
---|
A mensagem de erro que aparece no Lista de erros janela deve fornecer informações sobre o que você pode fazer para resolver o erro.Depois de resolver o erro e salvar o objeto de banco de dados, o ícone para esse objeto de banco de dados retorna ao estado normal. |
Uso de palavras reservadas novo no Microsoft SQL servidor 2005
A seguir é novas palavras-chave reservadas no SQL Server 2005: EXTERNAL, PIVOT, REVERT, TABLESAMPLE, e UNPIVOT. Uma mensagem de erro aparecerá no Saída janela se você usá-los reservado palavras-chave sistema autônomo esquema objeto nomes em um projeto de banco de dados que é direcionada para SQL servidor 2000.
Observação: |
---|
Para contornar a restrição, você pode colocar os nomes de objeto de esquema entre aspas.Por exemplo, você pode usar"CREATE TABLE [Externa] (c1 INT)". |
Diferenças na linha de comando da compilação
Se você executar uma compilação de linha de comando quando você tem o projeto em aberto no Visual Studio, você não pode receber todos os erros de compilação que você recebe quando você criar na interface do usuário.
Observação: |
---|
Para contornar o problema, fechar o projeto de banco de dados em Visual Studio antes de executar uma compilação de linha de comando. |
Chaves simétricas, assimétrica de chaves e certificados
In Visual Studio Team System Database Edition, você não pode criar chaves simétricas, sistema autônomo chaves assimétricas ou certificados sistema autônomo objetos de banco de dados. Quando você importa um esquema de banco de dados, comentários de espaço reservado são colocados em script pré-implantação com os nomes de chaves e certificados.Você deve alterar o script pré-implantação para criar os objetos.Da mesma forma, se você comparar os esquemas de bancos de dados, o script de atualização de esquema não contém os comandos Transact-SQL (T-SQL) necessários para criar chaves simétricas, as chaves assimétricas ou certificados faltando.Você deve exportar o script de atualização para o editor e adicione instruções para criar os objetos.
Dependências e scripts de atualização
Para gerar a ordem correta de objetos em um script de atualização, comparar esquema examina dependências entre objetos.Por exemplo, se um modo de exibição depende de uma tabela, a tabela deve ser criada antes do modo de exibição.Se o objeto que depende do objeto segundo não usar um nome qualificado de esquema, a dependência não pode ser identificada e o script de atualização ou criação pode ter instruções em uma ordem incorreta.Essa discrepância pode causar erros quando você atualiza um destino para coincidir com um fonte ou implantar as alterações a um banco de dados.Este problema também se aplica aos scripts de construção do banco de dados.
Observação: |
---|
Para contornar esse problema, certifique-se de qualificar esquema os nomes de objetos que estão envolvidos em relacionamentos dependentes.No exemplo a seguir, você pode garantir que a dependência será identificada corretamente se você alterar o participante da demonstrativo para referência [dbo]. [KeysTable] em vez de apenas KeysTable: |
CREATE VIEW [NewUser].[ViewReferencingScalarFunction] AS SELECT Column2, dbo.SimpleMultiplyParamByTwo(PK_Column) AS [Function] FROM KeysTable
Erros ao adicionar-se sistema autônomo um usuário
Se você for um membro da função sysadmin e você tenta adicionar a mesmo sistema autônomo um usuário, aparecerá o seguinte erro: "O logon já possui uma conta com um nome de usuário diferente." Este erro ocorre porque você é o proprietário do banco de dados de banco de dados validação em time de design, o que significa que você também é o usuário dbo nesse banco de dados.Portanto, você não pode adicionar-se novamente sistema autônomo um usuário de banco de dados.
Identificadores entre aspas podem causar problemas com o projeto Re-load
Erros será exibido quando você salva objetos ou carregar um banco de dados que contém identificadores entre aspas se o CONJUNTO QUOTED_IDENTIFIER está desmarcada nas propriedades do banco de dados.Essa situação pode ocorrer se você importar um esquema de banco de dados de um banco de dados usado identificadores entre aspas.
Observação: |
---|
Para contornar o problema, você tem duas opções.Você pode modificar as definições de objetos para usar colchetes em vez de aspas.Por exemplo, você pode alterar "My Table" para [minha tabela].As an alternative, you can open the Project menu, click DatabaseProjectProperties, click the Database Properties tab, and select the SET QUOTED_IDENTIFIER check box. |
O estado interno do banco de dados é divergente e seu Sumário
Você pode receber o seguinte erro ao trabalhar com Database Edition: "O estado interno do projeto do banco de dados é divergente com seu Sumário.Descarregar o projeto e recarregá-lo para resolver o problema." Este erro indica que alguma forma, o projeto que mantém uma lista dos arquivos que acredita que ele contém, não está mais sincronizado com o estado dos arquivos.O motivo mais comum por que você pode encontrar esse erro é se um dos arquivos no seu projeto será excluído do disco quando o projeto de banco de dados não está em aberto.O erro também pode resultar se ocorrerem problemas quando você importa um esquema de banco de dados.
Observação: |
---|
Para contornar o problema, tem de descarregar e recarregar o projeto de banco de dados.Para fazer isso, clicar na O gerenciador de soluções.em aberto the Projeto menu e clicar Descarregar projeto.Após o projeto é descarregado, abra o Projeto menu e clicar Recarregar projeto. |
Pesquisar de texto completo
Pesquisar de texto completo e o banco de dados de validação em time de design
Se você desativar a Pesquisar de texto completo no banco de dados de validação em time de design e você importar um esquema de um banco de dados com objetos de texto completo indexado, os objetos serão importados.No entanto, erro s será exibido no erro Lista janela para todos os objetos que usam os índices de texto completo.Os mesmos erros será exibido se, após importar os objetos, em seguida, desativar Pesquisar de texto completo em seu banco de dados de validação em time de design.
Observação: |
---|
Para contornar o problema, você deve ativar Pesquisar de texto completo no banco de dados de validação em time de design.Para obter mais informações, consulte "Full-Texto Pesquisar" noSite da Microsoft. |
sp_fulltext_table ações em definições de índice de texto completo
Somente o CREATE ação é permitida na definição de índice de texto completo. Se você desejar executar uma ação, sistema autônomo ACTIVATE, você deve executar no POST-script de implantação para o banco de dados. Se você adicionar outras ações, aparecerá o seguinte erro: O lote principal não pode ter um nível superior linguagem de manipulação de dados (DML) demonstrativo.Remova essa demonstrativo e repita a operação."
Observação: |
---|
Para contornar o problema, mova a demonstrativo sp_fulltext_table para o script pós-implantação ou um script que inclui o seu script pós-implantação.Para obter mais informações sobre POST-scripts de implantação, consulte Como: Especificar Pre-implantação ou Post-implantação Scripts. |
Objetos do SQLCLR
Por padrão, a integração do SQLCLR está desabilitado no Microsoft SQL Server 2005. Se você importar um esquema de um banco de dados que possui objetos SQLCLR e integração do SQLCLR é desabilitado no seu banco de dados de validação em time de design, erros não aparecerão no Lista de erros janela.No entanto, você receberá erros se você tentar executar esses objetos.
Observação: |
---|
Para contornar o problema, você deve executar o editor de Transact-SQL de Database Edition ou uma ferramenta sistema autônomo SQL Server Management Studio e se conectar ao servidor sistema autônomo um administrador do sistema. Em seguida, em uma período de consulta, executar o seguinte: |
exec sp_configure 'clr enabled', 1
reconfigure
Desfazer alterações pendentes
Exibição esquema não atualiza automaticamente depois de usar desfazer Pending Changes comando do seu sistema de controle de versão.Se, por exemplo, você renomear uma tabela ou uma coluna e, em seguida, reverter essas alterações, será exibida a mensagem "alterar de arquivo externo, ressincronização required…" emExibição esquema.
Observação: |
---|
Para contornar o problema, você deve clicar em Sincronizar on the Exibição esquemabarra de ferramentas . |
Usuário do Windows NT ou agrupar não encontrado
Se seu projeto de banco de dados faz referência a um logon não estiver disponível, o erro "usuário do Windows NT ou agrupar 'DomainName\LoginName' não encontrado.Verifique o nome novamente."é exibida.Se você trabalhar em um computador que esteja em um domínio diferente do banco de dados cujo esquema foi importada, por exemplo, você pode encontrar esse problema.Essa situação geralmente surge se você trabalha em residência com um projeto de banco de dados criado em outro lugar.Nessa situação, você não pode compilação ou implantar o projeto de banco de dados.
Observação: |
---|
Não há uma solução para esse problema.Você pode compilação e implantar um projeto de banco de dados somente onde os logins referenciados são válido. |
Duplicar objeto nomes e excluir arquivos
Se você tiver nomes de objetos duplicados no seu projeto de banco de dados (for example, duas tabelas que são nomeados pedidos), um erro será exibida no Lista de erros janela.Mesmo se você resolver o problema excluindo o arquivo que contém a definição de um dos objetos, a mensagem de erro não imediatamente desaparece.
Observação: |
---|
Para contornar o problema, você pode clicar em Atualizar ou você pode edição o arquivo que renomear o objeto que contém a definição do objeto e salvar o arquivo. |
criar ASSEMBLY não oferece suporte a referência a um arquivo
Você pode adicionar um módulo (assembly) CLR a um Transact-SQL (T-SQL) CREATE ASSEMBLY demonstrativo, incluindo o código binário na demonstrativo ou especificar um caminho de arquivo a um assembly. Database Edition não suporta o último método. Se você tentar usar essa sintaxe, aparecerá o seguinte erro: demonstrativo criar ASSEMBLY só pode ter elementos binário na sua cláusula FROM.
Observação: |
---|
Não há uma solução para esse problema. |
Problemas de conversão do SQL servidor 2000 para o SQL servidor 2005
Quando você converter um projeto de banco de dados de SQL servidor 2000 para SQL servidor 2005, os menus de contexto para objetos do SQL servidor 2005 não aparecem no Exibição esquema.
Observação: |
---|
Para contornar o problema, fechar e reabra o projeto de banco de dados depois de você convertê-lo para o SQL servidor 2005. |
Nomes qualificados de banco de dados e qualificados de servidor
Quando você cria um objeto no Team Edition for Database Professionals, o objeto é nomeado de acordo com o esquema do []. [objeto]. [filho] convenção de nomeclatura. Se você deseja fazer referência a um objeto em outro banco de dados ou em outro servidor, você pode incluir o nome do banco de dados e o servidor da seguinte maneira: [servidor]. [banco de dados]. [esquema]. [objeto]. [filho].Se você criar um procedimento armazenado ou um modo de exibição que se refere a um objeto que requer um nome de servidor qualificado ou qualificados de banco de dados, será exibido um aviso.
Observação: |
---|
Para resolver o problema do aviso, você deve definir uma referência de banco de dados.Para obter mais informações sobre referências de todos os bancos de dados, consulte Visão geral das referências entre banco de dados e Como: Criar banco de dados entre referências. |
Observação importante: |
---|
Implantação falhará se o seu projeto possui não resolvidas avisos sobre nomes qualificados de banco de dados ou servidor qualificado e selecionar o Tratar avisos sistema autônomo erros caixa de seleção a Compilação guia das propriedades para o projeto de banco de dados.Essa falha ocorre porque os nomes qualificados de banco de dados ou servidor qualificado geram avisos.Você deve desmarcar o Tratar avisos sistema autônomo erros a caixa de seleção se você estiver usando nomes qualificados de banco de dados ou servidor qualificado. |
Propriedade suporte ampliado
Esta versão do Database Edition não oferece suporte a propriedades estendidas em grupos de arquivos, nomes de arquivo e restrições de função. Se você importar um esquema de banco de dados ou um script, propriedades estendidas esses tipos de objeto são ignoradas.
Além disso, propriedades estendidas armazenam um valor de TinyInt, SmallInt, UniqueIdentifier ou bit são ignoradas e colocadas no arquivo ScriptsIgnoredOnImport.sql.
Observação: |
---|
Para contornar esse problema, você deve criar manualmente as propriedades estendidas em um script pós-implantação.Para obter mais informações, consulte Como: Especificar Pre-implantação ou Post-implantação Scripts. |
Desempenho do esquema de banco de dados de importação
Se você importar um esquema de banco de dados enquanto o Editor de Lista de Testes janela de ou Modo de Teste janela é em aberto, a operação de importação vai demorar muito mais para concluir.Essa diminuição irá ocorrer no Assistente de novo banco de dados projeto (se você tiver optado por importar um esquema de banco de dados) e durante a operação de importação de esquema de banco de dados.O problema ocorre mesmo se você fechar o Editor de Lista de Testes and Modo de Teste janelas antes de importar o esquema de banco de dados.
Observação: |
---|
Para contornar esse problema, você deve fechar o Editor de Lista de Testes and Modo de Teste janelas, desligue e reinicie Visual Studioe, em seguida, importar o esquema de banco de dados. Para esquemas menores, convém não executar essas etapas.Para o banco de dados de exemplo AdventureWorks, a operação de importação de esquema levou 27 segundos sem o Editor de Lista de Testes janela aberta e 48 segundos com o Editor de Lista de Testes janela aberta. |
Navegação de erros de compilação
Se a distribuição falhar, você não pode corrigir o erro atualizando o gerado compilação script.Você deve corrigir o arquivo de fonte que é usado para gerar e que script de construção.Se você clicar duas vezes em um erro de implantação no Lista de erros janela, o compilação script é exibido no editor, exibindo a linha que causou o erro.
Observação: |
---|
Para contornar esse problema, você deve ver o script de construção para determinar a causa da falha, mas, em seguida, você deve modificar o arquivo de fonte no projeto de banco de dados que contém o erro.Por exemplo, se o script pós-implantação permissões.sql contém um erro, você deve modificar permissões.sql em vez do compilação script. |
Projetos de banco de dados e a configuração confiável
Você deve ter permissões sysadmin para ativar a configuração confiável para um projeto de banco de dados ou em em aberto um projeto de banco de dados que possui a configuração confiável habilitada.
Observação: |
---|
Para contornar este problema, se a configuração confiável não deve ser ativada, peça ao administrador desabilite a configuração para o projeto de banco de dados.Se a configuração confiável deve ser ativada, todos os desenvolvedores trabalhando a projeto de banco de dados deve receber permissões de administrador do sistema para o banco de dados.Se cada desenvolvedor estiver funcionando em um ambiente de desenvolvimento isolado, cada um possui uma cópia particular do banco de dados e com segurança pode ser adicionada à função sysadmin para o banco de dados. |
Servidores vinculados e scripts de importação
Você pode receber uma mensagem de erro quando você implantar um projeto de banco de dados se você importou vários scripts em um projeto de banco de dados.Essa situação pode ocorrer se o mesmo servidor vinculado foi definido mais de uma vez entre esses scripts.
Observação: |
---|
Para contornar esse problema, você pode adicionar o seguinte T-SQL antes de cada sp_addlinkedserver chamadas no script LinkedServers.sql pré-implantação: |
IF NOT EXISTS (SELECT * FROM master.dbo.sysservers WHERE srvname = N'<serverName>')
Erros de sintaxe quando você usa referências de todos os bancos de dados
Você pode receber uma ou mais erros de sintaxe quando você salvar uma definição de objeto que contém uma referência a um objeto em outro banco de dados.Por exemplo, você pode adicionar uma referência para o projeto de banco de dados, definir as variáveis são denominadas RefServer e RefDatabase e atribuí-los em valores.E, em seguida, você poderia definir um modo de exibição sistema autônomo segue:
CREATE VIEW [dbo].[MyView]
AS
SELECT * FROM $(RefServer).$(RefDatabase).dbo.TableName
Quando você salvar esta definição, você poderá receber uma ou mais mensagens de erro que indicam a sintaxe incorreta.As mensagens de erro podem referenciar o nome do seu banco de dados de validação em time de design, que pode ser confuso.
Observação: |
---|
Para resolver esse problema, coloque os nomes de variável entre colchetes.Para corrigir este exemplo, mude-o da seguinte forma: |
CREATE VIEW [dbo].[MyView]
AS
SELECT * FROM [$(RefServer)].[$(RefDatabase)].dbo.TableName
Índices XML com propriedades estendidas
Um ou mais erros de sintaxe podem aparecer quando você salvar uma definição de objeto para um índice XML que contém definições para um ou mais propriedades estendidas.Esse tipo de erro ocorre porque o SQL Server 2005 não remove propriedades estendidas quando um índice XML é descartado e recriado. Quando essa situação ocorrer, o seguinte erro pode aparecer: "TSD4001: Propriedade não pode ser adicionada.Propriedade ' ExtendedPropertyName'já existe para' XMLIndexName'.(Erro SQL = 15233) ".
Observação: |
---|
Para resolver esse problema, você deverá mover a definição de propriedade estendida ou propriedades para o script pós-implantação e adicionar as instruções a seguir imediatamente antes da definição de: |
IF NOT EXISTS (SELECT * FROM fn_listextendedproperty('ExtendedPropertyName', 'SCHEMA', N'SchemaName', 'TABLE', N'TableName', 'INDEX', N'XMLIndexName')
Problemas de permissões com o Team Foundation compilação
Você pode receber erros de permissões quando você compilação e implantar seu projeto de banco de dados usando Team Foundation Build. Por padrão, a conta do serviço de Team Foundation Build usa a conta de serviço de rede. A conta de serviço de rede não tem as permissões necessárias para a instância de SQL Server sobre o compilação computador.
Observação: |
---|
Para resolver esse problema, você deve conceder as permissões adicionais para o serviço de rede da conta ou alterar a conta de serviço em que Team Foundation Build é executado para uma conta que tenha as permissões necessárias. Para obter mais informações, consulte Permissões necessárias no banco de dados edição. |
Avisos de token inesperado durante a compilação
Avisos de token inesperados podem aparecer quando você compilação seu projeto de banco de dados usando MSBuild. Se você substituir o DefaultDataPath e não especificar duas barras invertidas à direita, o \ "sequência é interpretada sistema autônomo um escape das aspas.Você receberá avisos de compilação e o script de construção gerado pode estar incompleto.
Observação: |
---|
Para resolver esse problema, você deve especificar uma barra invertida dupla no participante do caminho.Para obter mais informações, consulte Visão geral da implantação e criação de banco de dados. |
Falha na implantação de linha de comando de um computador com base em x64 para um servidor de banco de dados remoto
Se você não especificar explicitamente uma conexão de destino para o projeto de banco de dados, os valores de grupo de arquivos e arquivo local são definidos com baseados na estrutura de diretório no computador com 64 x do local.Implantação falhará a menos que o servidor de banco de dados remoto também esteja em execução um sistema operacional x64 e uma versão de 32 bit do SQL Server.
Observação: |
---|
Para resolver esse problema, você deve especificar explicitamente uma conexão de banco de dados de destino nas propriedades do seu projeto de banco de dados antes de implantar o banco de dados.Para obter mais informações, consulte Como: Configurar projetos de banco de dados para a criação e implantação. |
Consulte também
Tarefas
Como: Modificar objetos de banco de dados
Como: Diferenças do modo de exibição dados
Conceitos
Visão geral da terminologia do banco de dados edição