Quando exporto toda a lista de procedimentos/funções armazenados, notei que há uma incompatibilidade entre ANSI_NULLS
/ QUOTED_IDENTIFIERS
configurações. Alguns os têm, outros desligados. Não estou definindo isso explicitamente para os procedimentos ou funções armazenados, então como o SQL determina se deve ativar ou desativar essas configurações por padrão?
Brian Mains's questions
No SQL Server, estou recebendo o seguinte erro "A consulta foi cancelada porque o custo estimado desta consulta (5822) excede o limite configurado de 300. Entre em contato com o administrador do sistema."
Este é o resultado da execução de um procedimento armazenado, que é bastante complexo. Não encontrei isso para outros procedimentos armazenados, apenas este. É possível alterar o custo da consulta para este procedimento de alguma forma? Posso fazer isso no próprio procedimento armazenado durante a execução? Ou tenho que definir isso apenas no servidor?
Estou usando o comando ADO.NET para executar o procedimento armazenado.
Obrigado.
Sempre que você altera os arquivos sqlnet.ora ou tnsnames.ora do Oracle, o sistema requer uma reinicialização? Na minha instância, tenho apenas o cliente Oracle instalado na máquina a que me refiro, mas por curiosidade o que significaria para uma instalação do servidor Oracle?
Estou tentando automatizar o processo que executa as alterações no banco de dados SQL Server 2008 R2. O processo que coloquei em prática descarta e recria meus procedimentos e funções armazenados, além de executar scripts para alterar as tabelas/colunas/dados. Infelizmente, um dos scripts requer que uma das funções seja implementada primeiro. Mas não posso executar todas as alterações de proc/função armazenadas primeiro porque depende primeiro das colunas adicionadas dos scripts de alteração de tabelas/colunas/dados.
Eu queria saber se era possível executar procedimentos e funções armazenadas sem o SQL Server validar as colunas usadas na definição da função/SP? Tentei procurar, mas não consegui encontrar uma condição ou comando para habilitar isso.
Duplicação possível:
onde posso encontrar alguma orientação sobre estratégias de índice?
Lembro que fiz um curso de SQL Server 2000, e o instrutor disse que é preciso ter cuidado ao adicionar muitos índices a uma tabela, pois isso pode levar a problemas de desempenho na consulta da tabela. Com o lançamento do SQL Server 2012, esses tipos de problemas ainda são uma preocupação?
Tenho uma tabela em um banco de dados com três colunas: ID, Chave e Valor. Toda vez que atualizo o registro, tenho uma trigger que envia essas atualizações para outra tabela e cria um novo registro nela, cujo esquema é esse:
RowID (new ID field for this table, identity(1,1) column)
ID (from source table)
Key (from source table)
Value (from source table)
Version (integer)
Portanto, sempre que o primeiro registro da tabela é alterado, ele cria um novo registro no segundo com a tabela toda vez.
Para cada registro com um ID correspondente, desejo adicionar um número de versão incremental exclusivo. Se um registro com ID de 1 for inserido nesta tabela 5 vezes, esses registros devem ter números de versão de 1, 2, 3, 4 e 5. A maneira de fazer isso é por meio de uma subconsulta para números de versão existentes ou configurando uma partição, ou algo mais?
Obrigado.
Temos informações sigilosas (nomes de pessoas) e estamos procurando colocar em prática um script para "esfregar" os nomes. Alguém criou um bom algoritmo para fazer isso, algo além de apenas fazer todos os sobrenomes "TEST" ou algo assim?
Obrigado.
Eu tenho um script de restauração de banco de dados em um arquivo SQL e estou tentando restaurar um backup gerado de um banco de dados para um novo banco de dados (que existe). Esse arquivo SQL está sendo executado pelo SQLCMD na linha de comando. A janela de comando me informa que a restauração foi concluída com sucesso; no entanto, o banco de dados ainda está em um estado de restauração e não pode ser acessado. Por causa disso, o restante do meu processo em lote falha. Como posso tirar o banco de dados do estado de restauração e colocá-lo novamente em um estado online para que eu possa executar scripts de processo em lote adicionais?
Estou usando isso para fazer isso:
restore filelistonly
from disk = 'c:\program files\microsoft sql server\mssql10.mssqlserver\mssql\backup\olddb.bak'
GO
RESTORE DATABASE NewDB
FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\olddb.bak'
WITH NORECOVERY, REPLACE,
MOVE 'OldDB' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\newdb.mdf',
MOVE 'OldDB_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\newdb.ldf'
Alguma ideia de por que meu banco de dados ainda está em estado de restauração se ele disser que foi concluído com sucesso?
Obrigado.