Alguém sabe como posso listar as instruções preparadas que estão em uma instância do SQL Server?
dublintech's questions
É possível passar o nome de uma tabela para um procedimento armazenado?
Por exemplo, suponha que você tenha várias exibições da mesma tabela. Todos eles têm exatamente a mesma estrutura.
Você deseja um procedimento armazenado que possa ser executado para qualquer uma das exibições.
Algo como:
create procedure myprocedure
@tableName varchar(50) = ''
select blah from @tableName where blah = blah2
Quando tento fazer isso, recebo
Must declare the table variable @tablename
Alguma ideia de como posso fazer isso?
Eu tenho uma coluna var char no SQL Server 2008, que geralmente tem menos de 100 bytes, mas em alguns casos pode ser enorme até 5607 bytes. Preciso indexá-lo e não posso porque o tamanho máximo do índice no SQLServer é de 900 bytes.
Existe alguma maneira no mundo de adicionar qualquer tipo de índice a esta coluna? Por exemplo, criar um índice nos primeiros 900 bytes?
Obrigado
No meu banco de dados SQL Server, tenho uma datetime
coluna.
Qual é uma boa maneira de criar uma nova coluna que representa o long
valor da datetime
coluna? O long
representaria um número de segundos.
Eu pensei que se eu pudesse convertê-lo para longs
, seria mais fácil agrupar por consultas ao longo de períodos de tempo, pois eu poderia simplesmente dividir o número longo por valores fixos.
A tabela é estática, não atualizará ou excluirá dados.
Eu tenho uma coluna de data e hora e posso facilmente executar consultas com um grupo na minha coluna de data e hora. No entanto, gostaria de executar consultas de grupo para
- intervalos de 1 minuto
- intervalos de 2 minutos
- intervalos de 5 minutos
- intervalos de 1 hora
- etc.
Como eu faço isso?
No SQL Server, posso copiar uma tabela para outra fazendo:
Select * into desttable from sourcetable
No entanto, existem linhas duplicadas na tabela de origem e gostaria de copiar apenas linhas distintas. Como eu faço isso?
Obrigado
No SQL Server, tenho uma coluna varchar com valor como:
07/May/2012:00:06:22
07/May/2012:00:06:22
07/May/2012:00:06:22
07/May/2012:00:06:22
07/May/2012:00:06:22
- Como faço para converter esta coluna em uma coluna de data e hora com datas reais?
- Se isso não for possível, como apenas crio uma nova coluna e copio esses valores para ela, mas como valores de data e hora?
Se eu definir o nível de isolamento jdbc para ler não confirmado no SQL Server, o SQL Server bloqueará todas as tabelas, páginas, linhas, etc.?
Obrigado.
Estou tentando descobrir o tamanho do disco que várias linhas em várias tabelas ocupam.
Posso definir essas linhas por meio de uma consulta. Como posso descobrir o tamanho real do disco que corresponde ao conjunto de resultados no SQL Server?
A razão pela qual quero saber isso é que estou tentando analisar um sistema multilocatário. Estou tentando obter o tamanho total que cada inquilino ocupa no sistema. Portanto, preciso do tamanho de todas as linhas pertencentes a cada inquilino e do tamanho que cada inquilino está usando nas tabelas de índice, etc.
Todos os inquilinos compartilham o mesmo esquema, por isso não é fácil de fazer.
A cada 15 segundos ou mais, o aplicativo que estou tentando criar o perfil é acionado:
@@TRANCOUNT > 0 COMMIT TRAN
IF @@TRANCOUNT > 0 COMMIT TRAN
IF @@TRANCOUNT > 0 COMMIT TRAN SET IMPLICIT_TRANSACTIONS OFF
IF @@TRANCOUNT > 0 COMMIT TRAN SET IMPLICIT_TRANSACTIONS OFF
elect top 1 accountId from account with (nolock)
Este é um padrão regular do SQLServer?
E como posso configurar o profiler para não vê-lo?
A TI vem do mesmo processo e usuário do processo, usuário para o qual desejo configurar o perfil SQL.
Muito Obrigado
Eu não sou um DBA então por favor seja paciente comigo...
É possível ativar um rastreamento no SQL Server que me diga qualquer instrução SQL que demore mais de 2 segundos para ser executada, quando aconteceu e qual era o SQL? É possível definir o tempo para 2, 3, 4, tanto faz...?
Obrigado
No SqlServer 2000, costumava haver uma tabela chamada sysindex que tinha linhas de coluna. Esta tabela agora é: -sys.indexes -sys.partitions -sys.allocation_units -sys.dm_db_partition_stats
(consulte: http://msdn.microsoft.com/en-us/library/ms187997.aspx ), mas nenhuma dessas tabelas contém as colunas de linha? Então, como você descobre quantas linhas existem para um índice?
Obrigado.
A pergunta:
SELECT
name AS TableName,
create_date AS CreatedDate,
modify_date as ModifyDate
FROM sys.tables
order by ModifyDate;
...me dirá a última vez que uma tabela foi criada e modificada (de uma perspectiva DDL). Mas eu quero saber a última vez que os dados reais foram inseridos ou removidos da tabela. É possível obter isso no SQL Server?
Estou usando o MS Sql Server Mgt Studio.
- Eu seleciono um banco de dados.
- Clico com o botão direito do mouse e seleciono Relatório / Relatórios padrão / Estatísticas de uso do índice
- Recebo o erro: sintaxe incorreta perto de '('
Eu verifico alguns dos outros relatórios exibidos ok. Outros, por exemplo: Principais transações, Todas as transações de bloco, recebo Erro: Index(zero baseD) deve ser maior ou igual a zero e menor que o tamanho da lista de argumentos.
Alguma ideia do que poderia estar errado?
No SQLServer 2008 r2. Eu preciso descobrir para uma tabela específica o que os FKs em outras tabelas apontam para ela.
Eu tento:
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
Mas isso não me dá o que eu preciso.
Alguma dica?
Entendo que no SQL Server existem vários níveis de granularidade para bloqueios ... RID, chave, página, extensão, tabela, banco de dados.
Esquecendo a escalação de bloqueio, eu só quero verificar o nível padrão de granularidade de bloqueio no SQL Server 2008? Como faço isso?
Eu sei verificar impasses ao vivo
selecione * de sys.sysprocesses onde bloqueado>0
No entanto, isso é apenas para impasses atuais. Como verificamos impasses, digamos, nas últimas 24 horas? Nota: quero poder fazer isso sem ter que configurar em nenhum rastreamento etc - basta obter as informações de uma tabela do sistema. Isso é possível?
Obrigado.