AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-136

bernd_k's questions

Martin Hope
bernd_k
Asked: 2013-09-07 01:17:32 +0800 CST

Como descartar o banco de dados SQL Server atualmente em uso e no modo de usuário único

  • 9

Eu tenho um banco de dados no SQL Server 2008, que quero descartar. Atualmente está no modo de usuário único e está atualmente em uso.

select * from sys.sysprocesses

retorna

Msg 924, Level 14, State 1, Line 1
Database 'G_MAIN_DE' is already open and can only have one user at a time.

e não sei identificar a sessão que tenho que matar.

Uma tentativa de configurá-lo offline

ALTER DATABASE G_MAIN_DE SET OFFLINE WITH ROLLBACK IMMEDIATE

rendimentos

Msg 5064, Level 16, State 1, Line 1
Changes to the state or options of database 'G_MAIN_DE' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
sql-server
  • 4 respostas
  • 46147 Views
Martin Hope
bernd_k
Asked: 2012-03-12 00:02:17 +0800 CST

Qual é a substituição para EXEC sp_dboption <dbname> no SQL Server 2012?

  • 1

Com o microsoft connect , você aprende que ele é fechado por design. Mas eles não dizem como substituir

EXEC sp_dboption master

para consultar as opções atuais do banco de dados.

sql-server-2012
  • 1 respostas
  • 2150 Views
Martin Hope
bernd_k
Asked: 2012-01-05 01:38:54 +0800 CST

Alguém tem uma função que estenderá hashbytes para strings de comprimento arbitrário?

  • 4

Eu quero aplicá-lo às definições de procedimento.

Minha ideia básica é dividir a string do tipo nvarchar(max) em pedaços de nvachar(4000) e concatenar os resultados de HashBytes('MD5',chunk).

Não consigo imaginar que isso ainda não tenha sido feito.

sql-server
  • 1 respostas
  • 3155 Views
Martin Hope
bernd_k
Asked: 2011-12-23 01:55:31 +0800 CST

Não é um espaço em branco tabulação (char(9)) na especificação ANSI/ISO SQL-92 (Seção 8.2, Regras gerais nº 3)?

  • 1

Se houver algum motivo sensato para ignorar os espaços em branco à direita nas comparações de varchar, por que isso também não se aplica aos caracteres de tabulação?

No SQL Server eu recebo

SELECT
    case when '' = ' ' then 'true' else 'false' end, 
    case when '' = CHAR(9) then 'true' else 'false' end

rendimentos

---- -----
true false

Isso é um problema da especificação ANSI ou um problema da implementação do SQL Server?

Editar:

Não tenho acesso ao texto do caderno de especificações. Eu só vejo isso mencionado nesta resposta . Não sei dizer se ele aborda apenas espaços em branco ou se refere a espaços em branco em algum sentido vago.

sql-server
  • 1 respostas
  • 1949 Views
Martin Hope
bernd_k
Asked: 2011-12-22 07:25:03 +0800 CST

Como escrever uma restrição de verificação para não permitir campos varchar vazios?

  • 5

No SQL Server, as colunas varchar não anuláveis ​​podem conter strings vazias.

No ORACLE eles não podem, porque varchar2 trata '' como equivalente a NULL.

Se você projetar um esquema de banco de dados adequado para ambos os RDBMS, parece ser uma boa ideia adicionar a cada coluna varchar não anulável no SQL Server uma restrição que não permita strings vazias.

Mas qual é a melhor maneira de formular tal restrição?

eu comecei com

if OBJECT_ID('varchar_without_empty_cols') > 0 drop table varchar_without_empty_cols
go

create table varchar_without_empty_cols (
id int ,
val varchar(10) not null CHECK (val <> '') 
)
go


insert into varchar_without_empty_cols values (1, ' ')  -- this ought be OK
go
insert into varchar_without_empty_cols values (2, '')   -- this has to violate the check
go
insert into varchar_without_empty_cols values (3, null) -- this violates the not null
go 

select * from varchar_without_empty_cols

Mas essa restrição não apenas inibe strings vazias, o que é intencional, mas também inibe strings que consistem em um único caractere, e não é isso que pretendo.

sql-server constraint
  • 1 respostas
  • 9206 Views
Martin Hope
bernd_k
Asked: 2011-12-21 04:08:47 +0800 CST

Strings vazias: Por que ou quando '' é igual a ' '?

  • 18

Quem pode explicar por que

select case when '' = ' ' then 1 else 0 end, LEN(''), LEN(' '), DATALENGTH(''), DATALENGTH(' ');

rendimentos

----------- ----------- ----------- ----------- -----------
1           0           0           0           1

A consequência engraçada disso é que em

create table test ( val varchar(10) );
insert into test values( '' );
update test set val = ' ' where val = '';

a atualização irá de fato substituir a string vazia por um espaço em branco, mas a cláusula where continua verdadeira e as execuções repetidas da instrução de atualização informam

(1 row(s) affected)
sql-server-2008 empty-string
  • 1 respostas
  • 6974 Views
Martin Hope
bernd_k
Asked: 2011-12-20 22:56:15 +0800 CST

Como capturar e lidar apenas com exceções específicas do Oracle?

  • 22

A partir disso e disso , acho que não há exceções de sistema nomeadas predefinidas para ORA-00955.

Como posso reescrever o seguinte para capturar apenas o erro ORA-00955?

begin
      EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1';
exception when OTHERS then
    Null;
end;

BTW Existe alguma sintaxe para detectar erros apenas fornecendo os códigos de erro?

oracle exception
  • 2 respostas
  • 69779 Views
Martin Hope
bernd_k
Asked: 2011-11-01 05:21:11 +0800 CST

Existem maneiras de substituir apenas os procedimentos armazenados do SQL Server quando a definição for alterada?

  • 4

Conheço os dois padrões a seguir para escrever scripts para criar procedimentos armazenados, que podem ser executados repetidamente sem gerar erros.

if object_id('my_proc') > 0 drop procedure my_proc
go
create procedure dbo.my_proc as Print 'This is not a dummy';

e o outro que preserva as permissões

if object_id('my_proc') is null
    EXEC ('create procedure dbo.my_proc as Print ''This is a dummy''');
go
ALTER PROCEDURE dbo.my_proc as Print 'This is not a dummy';
    

Eu acho que quando o procedimento existe e seu código hash é o mesmo da nova versão, não haveria necessidade de descartar e recriar ou alterar o procedimento.

Meu problema é que o HashBytes é limitado a no máximo 8000 bytes e geralmente não consigo usá-lo como

if object_id('my_proc') is null
    EXEC ('create procedure dbo.my_proc as Print ''This is a dummy''');
go
if object_Id('my_proc') > 0
and
(
Select HashBytes('MD5',definition) MD5
from sys.sql_modules m
join sysobjects o on o.id = m.object_id
where o.name = 'my_proc'
) <> 0x9028A1B9D93AC7592EC939CCABF9D3DE
begin
    print 'definition has changed';
    EXEC ('ALTER PROCEDURE dbo.my_proc as Print ''This is not a dummy''');
end 

Para procedimentos cuja definição tenha mais de 4.000 caracteres. Alguma proposta para lidar com esses casos de maneira semelhante?

Editar:

Não quero apenas evitar a liberação de planos em cache.

Também tenho que lidar com clientes diferentes com versões diferentes de um procedimento armazenado, onde desejo apenas substituir uma dessas variantes por uma versão mais recente.

sql-server stored-procedures
  • 3 respostas
  • 3174 Views
Martin Hope
bernd_k
Asked: 2011-10-31 23:42:05 +0800 CST

Há algum motivo para não habilitar o modo SQLCMD como padrão no SSMS?

  • 6

Não considero "apenas para garantir que o modo sqlcmd não seja exigido por um script" um motivo válido.

Alguma coisa para pensar antes de dar a ordem para habilitar essa configuração para meus colegas de trabalho?

sql-server ssms
  • 2 respostas
  • 1856 Views
Martin Hope
bernd_k
Asked: 2011-10-28 00:27:02 +0800 CST

Como posso consultar o nível de compatibilidade do SQL Server em uma variável?

  • 3

Eu sei consultar o nível de compatibilidade atual de um banco de dados com

declare @dbname sysname
select @dbname = db_name(0)
exec sp_dbcmptlevel @dbname

Mas isso parece retornar seu resultado por meio de impressão e não encontrei nenhuma maneira de atribuir o valor a uma variável e usá-la para controlar if ... else ... construções para executar código diferente, dependendo da configuração atual.

sql-server compatibility-level
  • 1 respostas
  • 7852 Views
Martin Hope
bernd_k
Asked: 2011-10-25 10:07:31 +0800 CST

Como encontrar a sintaxe "outer join in the where" no SQL 2005 usando cmptlevel 80?

  • 0

Bem, no Natal passado eu estava muito feliz, porque encerramos o suporte para o SQL Server 2000.

Eu poderia parar de torcer meu cérebro e usar funções analíticas amigáveis. (Acredite em mim, quando se trata de migrar stored procedures de SQL-Server para Oracle, as funções analíticas são uma de suas melhores amigas).

Mais tarde, descobrimos que deixamos passar um pequeno aborrecimento.

Quando os clientes substituem suas máquinas antigas por novas, por padrão, seu nível de compatibilidade é definido de acordo com a máquina antiga e os problemas são adiados para mais tarde.

Qual problema? As funções analíticas funcionam no SQL Server 2005, apesar do nível de compatibilidade 80.

Receio dizer que outros novos recursos, como o PIVOT, estão inibidos.

Agora é uma boa hora para tentar se livrar do cmptlevel 80, mas como?

Para mim, é principalmente verificar os procedimentos, visualizações, funções e gatilhos para junções externas de estilo antigo, como '*=' e '=*'.

Primeiro vamos encontrar o texto de definição nas tabelas do sistema. Inicialmente, ele foi salvo em pequenos pedaços no formato syscomments. Hhm como lidar com o caso quando '*' e '=' são divididos em partes sucessivas.

Em seguida, não perca seu tempo com Select ROUTINES from INFORMATION_SCHEMA.ROUTINES que trunca a definição para 4000 caracteres.

Por fim, este é o código para consultar os objetos problemáticos:

select o.name , o.type, datalength(definition) len, len(definition) len, definition from sys.sql_modules m 
join sysobjects o on o.id = m.object_id
where (definition like '%*=%' or definition like '%=*%') 

Mas há mais um obstáculo. Como o padrão é derivado do padrão , a largura padrão dos resultados do texto é muito pequena (acho que é 256, mas como é a primeira coisa que mudo para 8192 no SSMS, não aposto).

Em qualquer caso, isso ajuda a identificar as linhas que precisam de um exame mais profundo.

Talvez sp_help exiba a definição completa para todos os casos possíveis.

Talvez sim, não sei ao certo, porque cansei desses problemas criados pelas cabeças dos cartões perfurados. Normalmente eu uso ADO e PowerShell, mas eles podem não estar instalados na máquina do cliente.

Existem scripts T-SQL 100% à prova d'água para fazer o trabalho de exibir ou exportar a definição completa dos procedimentos encontrados por alguma condição?

t-sql procedure-definition
  • 1 respostas
  • 259 Views
Martin Hope
bernd_k
Asked: 2011-09-21 02:45:36 +0800 CST

Como consultar concessões dadas no Oracle?

  • 7

Em um banco de dados, tive que executar as duas instruções a seguir:

GRANT CREATE ANY TABLE TO MyUSER;
GRANT DROP ANY TABLE TO MyUSER;

O que sinto falta é a consulta que me diz que essas concessões são concedidas. Eu não os vejo em

select * from USER_TAB_PRIVS ORDER BY 2 ;
select * from USER_ROLE_PRIVS ORDER BY 1, 2;
oracle
  • 1 respostas
  • 39471 Views
Martin Hope
bernd_k
Asked: 2011-09-07 23:38:20 +0800 CST

SQLCMDMODE do SSMS. Posso definir o modo -b ao usar: r para incluir arquivos?

  • 2

Pelo que li msdn , não há variável que corresponda ao sinalizador -b do comando (no erro de interrupção do lote). Não encontrei como habilitar esse modo dentro de um script ao executar no modo sqlcmd. Existe algum para forçar: r filename a ser executado neste modo, quando chamado do SSMS?

sql-server-2005 sqlcmd
  • 1 respostas
  • 195 Views
Martin Hope
bernd_k
Asked: 2011-09-07 21:59:19 +0800 CST

Posso habilitar o modo SQLCMD de dentro de um script?

  • 19

Existe algo como uma diretiva que eu possa usar em um script para forçar o SSMS a ativar/desativar o modo SQLCMD?

sql-server sqlcmd
  • 2 respostas
  • 28152 Views
Martin Hope
bernd_k
Asked: 2011-09-07 21:32:54 +0800 CST

O SELECT tem uma cláusula INSERT?

  • 4

eu sei a forma

Select * into new_table from old_table

declaração. Mas recentemente encontrei 2 postagens aqui e aqui que usam como

SELECT * FROM NhlPlayer
INSERT INTO PlayerBackups

Não encontro nada no msdn , é alguma nova sintaxe ou apenas uma falha? Eu acho que o mais tarde porque

INSERT INTO PlayerBackups
SELECT * FROM NhlPlayer

funcionaria bem.

sql-server select
  • 2 respostas
  • 2564 Views
Martin Hope
bernd_k
Asked: 2011-09-07 04:31:42 +0800 CST

O que são índices hipotéticos?

  • 2

Eles parecem ser criados por ferramentas como o DTA.

Para efeitos práticos, eles podem ser excluídos , ignorados ou escolhidos para serem criados, mas até então, eles não têm influência direta no banco de dados.

sql-server index
  • 1 respostas
  • 255 Views
Martin Hope
bernd_k
Asked: 2011-08-30 05:06:00 +0800 CST

Qual é o significado do nível de compatibilidade da Microsoft?

  • 7

Definir cmptlevel como 80 em um SQL-Server 2005 inibe o uso de PIVOT e APPLY, mas não afeta o uso de Analytical Functions. Existe algum racional por trás disso?

sql-server compatibility-level
  • 2 respostas
  • 23681 Views
Martin Hope
bernd_k
Asked: 2011-08-23 07:54:15 +0800 CST

Como implementar um atributo cancel em uma tabela?

  • 4

Qual é a melhor maneira de implementar um atributo cancelado em uma tabela de banco de dados, desde que menos de 3% das linhas sejam canceladas.

Para dados cancelados, desejo armazenar as informações adicionais

  • por quem
  • quando
  • Por quê

Em cerca de 95% das consultas, desejo selecionar apenas as linhas não canceladas.

Além disso, quero poder implementar restrições exclusivas em algumas colunas para as colunas não canceladas.

Quais são os prós e contras de usar NULL em alguma coluna como indicador de não cancelado?

sql-server oracle
  • 4 respostas
  • 436 Views
Martin Hope
bernd_k
Asked: 2011-08-21 00:31:26 +0800 CST

Onde colocar glogon.sql em ODAC de 32 bits (11.2.0.2.1)?

  • 2

Eu instalei o ODAC de 32 bits (11.2.0.2.1) daqui . A versão do Oracle Universal Installer contém o Oracle SQL*Plus 11.2.0.2.0. Mas estou sentindo falta da pasta sqlplus/admin/ na instalação, onde normalmente coloco o arquivo glogin.sql.

Editar:

Esta instalação está em um novo Windows 7 - Notebook de 64 bits, que é meu primeiro sistema Windows de 64 bits.

A ideia inicial não é instalar nenhum servidor Oracle lá, mas acho que vou mudar de ideia nos primeiros 2 meses.

Encontro sqlplus.exe na pasta D:\app\berndk\product\11.2.0\client_1.

BTW Esta instalação não tem subpasta sqlplus e o variável de ambiente ORACLE_HOME não está definido. Como não preciso do ODBC, essa instalação geralmente funciona muito bem.

oracle
  • 1 respostas
  • 366 Views
Martin Hope
bernd_k
Asked: 2011-08-08 02:24:20 +0800 CST

Usando DTA versus avaliando DMVs?

  • 5

Atualmente, estou confrontado com um banco de dados SQL Server de produção onde alguém adicionou quase todas as propostas de índice ausentes do DTA.

Formulário Como determinar se um índice é obrigatório ou necessário Aprendi que existem exibições DMV, que podem ser usadas para adiar informações sobre o uso real do índice, bem como índices ausentes.

O script de Jason Strate usa apenas as informações atuais dessas visualizações, enquanto Fun for the day - Automated Auto-Indexing! salva algumas informações dessas visualizações em tabelas.

O DTA, por outro lado, requer planejamento de quando executar o criador de perfil, selecionar o que criar perfil e tem algum impacto no desempenho durante a execução.

Minha impressão é que usar o DTA como ferramenta de ajuste de primeira etapa é simplesmente uma perda de tempo e, como seus resultados não cobrem o uso completo do banco de dados, são difíceis de interpretar por novatos e podem levar à adição de muitos índices com impacto negativo no desempenho de gravação , enquanto a coleta de dados via DMV requer pouca preparação e abrange quase todo o uso do banco de dados desde a última reinicialização.

A minha dúvida é qual estratégia propor à gestão. Quero me concentrar na avaliação das visualizações do DMV na primeira etapa e ignorar completamente o DTA.

sql-server sql-server-2008
  • 3 respostas
  • 550 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve