Articles of sql server

Confuso sobre UPDLOCK, HOLDLOCK

Ao pesquisar o uso de dicas de tabela , me deparei com essas duas perguntas: Quais dicas de bloqueio devo usar (T-SQL)? Qual o efeito que o HOLDLOCK tem em UPDLOCK? As respostas a ambas as perguntas dizem que, ao usar (UPDLOCK, HOLDLOCK) , outros processos não poderão ler dados nessa tabela, mas eu não […]

Consulta do SQL Server – Selecionando COUNT (*) com DISTINCT

No SQL Server 2005 eu tenho uma tabela cm_production que lista todo o código que foi colocado em produção. A tabela tem um ticket_number, program_type e program_name e push_number junto com algumas outras colunas. OBJETIVO: Conte todos os nomes de programas DISTINCT por tipo de programa e número de envio O que eu tenho até […]

Evitar duplicatas na consulta INSERT INTO SELECT no SQL Server

Eu tenho as duas tabelas a seguir: Table1 ———- ID Name 1 A 2 B 3 C Table2 ———- ID Name 1 Z Eu preciso inserir dados de Table1 para Table2 . Eu posso usar a seguinte syntax: INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1 No entanto, no meu caso, IDs duplicados podem […]

SQL Server – transactions reverter em erro?

Temos aplicativo cliente que está executando algum SQL em um SQL Server 2005, como o seguinte: BEGIN TRAN; INSERT INTO myTable (myColumns …) VALUES (myValues …); INSERT INTO myTable (myColumns …) VALUES (myValues …); INSERT INTO myTable (myColumns …) VALUES (myValues …); COMMIT TRAN; É enviado por um longo comando de string. Se uma das […]

Alias ​​de referência (calculado em SELECT) na cláusula WHERE

SELECT (InvoiceTotal – PaymentTotal – CreditTotal) AS BalanceDue FROM Invoices WHERE BalanceDue > 0 –error O valor calculado ‘BalanceDue’ definido como uma variável na lista de colunas selecionadas não pode ser usado na cláusula WHERE. Existe uma maneira que pode? Nesta questão relacionada ( Usando uma variável no MySQL Select Statment em uma Where Clause […]

Melhores técnicas para cortar zeros à esquerda no SQL Server?

Eu tenho usado isso há algum tempo: SUBSTRING(str_col, PATINDEX(‘%[^0]%’, str_col), LEN(str_col)) No entanto, recentemente, encontrei um problema com colunas com todos os caracteres “0”, como “00000000”, porque ele nunca encontra um caractere diferente de “0” para corresponder. Uma técnica alternativa que já vi é usar o TRIM : REPLACE(LTRIM(REPLACE(str_col, ‘0’, ‘ ‘)), ‘ ‘, ‘0’) […]

Selecionando N linhas no SQL Server

A consulta a seguir retornará de 1 a 10 em 10 linhas. DECLARE @Range AS INT = 10 ;WITH CTE AS( SELECT TOP (@Range) Duration = ROW_NUMBER() OVER(ORDER BY OBJECT_ID) FROM sys.all_columns ORDER BY [Object_id] ) SELECT Duration from CTE Mas quando eu defino @Range como 10000, ele retorna 7374 linhas. Por que essa consulta […]

Quais são os casos de uso para selecionar CHAR sobre VARCHAR no SQL?

Eu percebo que o CHAR é recomendado se todos os meus valores forem de largura fixa. Mas e daí? Por que não apenas escolher VARCHAR para todos os campos de texto apenas para estar seguro.

SQL Server SELECT na tabela existente

Eu estou tentando selecionar alguns campos de uma tabela e inseri-los em uma tabela existente de um procedimento armazenado. Aqui está o que estou tentando: SELECT col1, col2 INTO dbo.TableTwo FROM dbo.TableOne WHERE col3 LIKE @search_key Eu acho que select into é para tabelas temporárias, e é por isso que recebo um erro que dbo.TableTwo […]

Existe uma maneira de percorrer uma variável de tabela no TSQL sem usar um cursor?

Digamos que eu tenha a seguinte variável de tabela simples: declare @databases table ( DatabaseID int, Name varchar(15), Server varchar(15) ) — insert a bunch rows into @databases Está declarando e usando um cursor minha única opção se eu quisesse percorrer as linhas? Existe outro caminho?