Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

Tratamento de erros no SQL Server (TRY-CATCH)

Posted by karuta em agosto 24, 2018

— Criando tabela para teste 
CREATE TABLE #teste (id int)

— Adicionando restrição à tabela.
— Somente IDs menores do que 10 serão aceitos 

ALTER TABLE #teste ADD CONSTRAINT chkID CHECK (id < 10)

 

— Executando a tarefa em transação
BEGIN TRANSACTION

BEGIN TRY
        
    INSERT INTO #teste VALUES (5)
    INSERT INTO #teste VALUES (2)
    INSERT INTO #teste VALUES (13)  — Inserção de ID inválido

    COMMIT TRANSACTION — Efetivando alterações na base

END TRY
BEGIN CATCH
    
    PRINT ‘Erro ao executar script’
    ROLLBACK TRANSACTION — Desfazendo as alterações na base
          
END CATCH

SELECT * FROM #teste

DROP TABLE #teste

Anúncios

Posted in sql server, store procedure | Leave a Comment »

Uso de WITH e MERGE para inserção em lote pegando os ID do campo Identity Increment

Posted by karuta em agosto 24, 2018

agenda 1 – tabela com os dados [id_agenda1, nome, telefone]

agenda 2  – tabela nova que vai receber os dados [id_agenda2, nome, telefone]

agenda 3 – id da agenda1 e id criado na agenda 2 [id_agenda1, id_agenda2]

 


;WITH magica
AS (
SELECT * FROM [agenda1]
)
MERGE INTO [agenda2]
USING magica Y
ON 1 = 0
WHEN NOT MATCHED THEN
INSERT (nome, telefone)
OUTPUT INSERTED.id_agenda2, Y.id_agenda1  INTO agenda3;

Posted in sql server, store procedure | 2 Comments »

Função para criar JSON a partir de um XML

Posted by karuta em agosto 16, 2018

— Como usar:
SELECT dbo.FlattenedJSON(
(select top 10 artista_id, empresa_id, data_alteracao, login_alteracao from yb_artistas
FOR XML path, root)
)
— —————————————————————————————————————–
CREATE FUNCTION dbo.FlattenedJSON (@XMLResult XML)
RETURNS NVARCHAR(MAX)
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE  @JSONVersion NVARCHAR(MAX), @Rowcount INT
SELECT @JSONVersion = , @rowcount=COUNT(*) FROM @XMLResult.nodes(‘/root/*’) x(a)
SELECT @JSONVersion=@JSONVersion+
STUFF(
  (SELECT TheLine FROM
    (SELECT ‘,
    {‘+
      STUFF((SELECT ‘,”‘+COALESCE(b.c.value(‘local-name(.)’, ‘NVARCHAR(255)’),)+‘”:”‘+
       REPLACE( –escape tab properly within a value
         REPLACE( –escape return properly
           REPLACE( –linefeed must be escaped
             REPLACE( –backslash too
               REPLACE(COALESCE(b.c.value(‘text()[1]’,‘NVARCHAR(MAX)’),),–forwardslash
               ‘\’, ‘\\’),
              ‘/’, ‘\/’),
          CHAR(10),‘\n’),
         CHAR(13),‘\r’),
       CHAR(09),‘\t’)
     +‘”‘
     FROM x.a.nodes(‘*’) b(c)
     FOR XML PATH(),TYPE).value(‘(./text())[1]’,‘NVARCHAR(MAX)’),1,1,)+‘}’
   FROM @XMLResult.nodes(‘/root/*’) x(a)
   ) JSON(theLine)
  FOR XML PATH(),TYPE).value(‘.’,‘NVARCHAR(MAX)’ )
,1,1,)
IF @Rowcount>1 RETURN ‘[‘+@JSONVersion+
]’
RETURN @JSONVersion
END

Posted in sql server, store procedure | Leave a Comment »

IIS SERVER 2016 – ERROS AMIGÁVEIS NO ASP – Microsoft-IIS/10.0

Posted by karuta em junho 26, 2018

Clicar em: “Erros Pages” (no IIS)

Botão direito: “Edit Feature Settings”

Marcar: Detailed erros

 

Posted in asp | Leave a Comment »

Excel-to SQL INSERT Commands Text Wizard

Posted by karuta em abril 9, 2018

Great solution in web

http://tools.perceptus.ca/text-wiz.php?ops=7

Posted in Sem categoria | Leave a Comment »

“SQL_Latin1_General_CP1_CI_AS” and “Latin1_General_CI_AS” in the equal to operation.

Posted by karuta em março 22, 2018

Se acontecer na tabela temporária use o seguinte exemplo:

 

SELECT arquivo, count(arquivo) as total, min(data_inicial) as data_inicial, max(data_final) data_final, sum(valor) as soma_valor,
max(canal_de_vendas) as canal_vendas, max(moeda) as moeda, max(aprovado) as aprovado
FROM yb_royalty
WHERE arquivo IN (select arquivo COLLATE DATABASE_DEFAULT from #lista) AND empresa_id = @empresa_id AND moeda = @moeda
GROUP BY arquivo

 

Posted in Sem categoria | Leave a Comment »

Localizar palavras em Store Procedures do SQL SERVER

Posted by karuta em janeiro 31, 2018

TYPE armazena o tipo do objeto a ser localizado, onde :
U => Tabela Usuário
S => Tabela de sistema
P => Procedure
V => View
F => Function

Posted in sql server, store procedure | Leave a Comment »

UPDATE COLUNA com o resultado da SOMA de outra tabela

Posted by karuta em janeiro 26, 2018

begin tran
UPDATE M
SET M.pago_royalty_arredondado = F.valsum
FROM yb_royalty_pagamento M
INNER JOIN
(
select pagamento_id, sum(valor_pago) as valsum
from yb_royalty_pagamento_integrante
group by pagamento_id) F
ON M.pagamento_id = F.pagamento_id

rollback tran
commit tran

Posted in sql server | Leave a Comment »

ASP PROBLEMAS EM MOSTRAR VARCHAR(MAX)

Posted by karuta em janeiro 17, 2018

DICA 1

Crie uma variável ASP com o conteúdo enviado pelo SQL SERVER e mostre a variável ao invés do que é enviado pelo banco.

EX: enviado pelo banco: (rsArquivos.Fields.Item(“html”).Value)

código:

html = (rsArquivos.Fields.Item(“html”).Value)
if len(trim(html)) <> 0 then %>
<strong><%=(html) %></strong>
end if

 

DICA 2 (mas temo um problema de erro nas SPs ainda não descobri o por que)

use em sua string de conexão ao invés de:  DRIVER={SQL Server}

 

Provider=SQLNCLI; quando sua versão for SQL2005
Provider=SQLNCLI10;  quando sua versão for SQL2008
Provider=SQLNCLI11;  quando sua versão for SQL2012
 
 

Posted in asp | Leave a Comment »

VERIFICAR PARAMETROS EM ADODB.Command PARA DEBUG

Posted by karuta em setembro 6, 2017

for each param in cmd.Parameters

response.write param.Name & “: ” & param.Value & “<br>”

next

Posted in asp | Leave a Comment »