Escolar Documentos
Profissional Documentos
Cultura Documentos
-----------------Study or die-------------------------------
/*
Criador: Henrique Francisco da silva
AB: 985452
Descrição: material abaixo retirado com base no estudo nos módulos 1 e 2 da impacta
de sql server e Cursos aleatórios da Udemy
*/
--Criado para estudo focado nas certificações a baixo:
/*
------certificações focada para modelagem de dados ( BI )------
*/
---ESTUDANDO TUDO DES do começo do curso, BEM EXPLICADO -----------------
USE PEDIDOS
--CRIANDO TABELA
CREATE TABLE TABELA_TESTE(
IDCLI INT IDENTITY (1,1) NOT NULL ,
NOME VARCHAR(20) DEFAULT 'SEM NOME' NULL,
)
--SELECT COMUN
SELECT * FROM TABELA_TESTE
('ICARO',20,$1800),
('ISABELE', 29, $3800),
('TAYLOR', 40, $1700),
('BRUNA', 50, $8000);
FROM TABELA_TESTE
WHERE SALARIO < 2000.00
--DEPOIS DE MUITO ESTUDO O SEU SALARIO VAI PARAR NAS ALTURA HENRIQUE
UPDATE TABELA_TESTE
SET SALARIO = 5500.00
WHERE NOME = 'HENRIQUE'
--CONTULTANDO
SELECT * FROM TABELA_TESTE
-----------
USE PEDIDOS
SELECT * FROM [DBO].[EMPREGADOS]
t
BEGIN TRANSACTION
USE PEDIDOS
SELECT TTE.[CÓDIGO DO FUNCIONARIO],
TTE.NOME,
TTE.DATA_ADMISSAO,
TTE.OBS,
DATEDIFF(YEAR, TTE.DATA_ADMISSAO, GETDATE()) AS 'ANOS DE
EMPRESA',
DATEDIFF(MONTH, TTE.DATA_ADMISSAO, GETDATE()) AS 'MESES DE
EMPRESA',
DATEDIFF(DAY, TTE.DATA_ADMISSAO, GETDATE()) AS 'DIAS DE
EMPRESA',
CASE DATEDIFF(YEAR, TTE.DATA_ADMISSAO, GETDATE())
WHEN '1' THEN 'É NOVO, DA TEMPO DE SAIR'
WHEN '2' THEN 'CUIDADO PARA NAO FICAR MUITO TEMPO
NA EMPRESA'
WHEN '3' THEN 'TA FICANDO LASCADO(A), JA DEVE TER
4 FILHOS PARA SUSTENTAR'
t
COMMIT
------------------------------------------------------------------------------------
---------------------------------
-----INSERT DE SELECT DA TABELA ANTERIOR
---CONSULTANDO
SELECT * FROM #TESTETEMPORARIA
--INSERINDO OS 10 MELHORES
INSERT INTO #TESTETEMPORARIA
SELECT TOP(10) NOME, OBS FROM TRABALHADORES_LOUCOS
ORDER BY [CÓDIGO DO FUNCIONARIO] ASC
t
--DELETANDO
DELETE #TESTETEMPORARIA OUTPUT DELETED.*
--CONTULTANDO
SELECT * FROM #TESTETEMPORARIA
--INSERINDO E MOSTRANDO
INSERT INTO #TESTETEMPORARIA
OUTPUT INSERTED.NOME, INSERTED.OBS
SELECT NOME, OBS FROM TRABALHADORES_LOUCOS
------------------------------------------------------------------------------------
------------------------------------------------------------
---DECLARANDO UMA VARIAVEL COMO TABELA (VARIAVEL TABULAR) E INSERINDO DADOS NELA
DECLARE @REG_INSERT TABLE (NOME VARCHAR(MAX), OBS VARCHAR(MAX));
--------
SELECT * FROM @REG_INSERT
--------------------------------------------------------------------------
---USANDO TOP WITH TIES
USE PEDIDOS
SELECT TOP 1 WITH TIES * FROM TRABALHADORES_LOUCOS
ORDER BY SALARIO DESC
--USANDO JOIN
USE PEDIDOS
SELECT * FROM [DBO].[VENDEDORES]
SELECT * FROM
------------------------------------------------------------------------------------
------
--LISTANDO FUNCIONARIOS E MODIFICANDO A TABELA PARA NÃO ESQUECER
SELECT CODFUN AS 'CÓDIGO DO FUNCIONARIO',
NOME,
IIF(NUM_DEPEND >= 1,'TA LASCADO(A), VAI TRABALHAR PARA SUSTENTAR OS
FILHOS','SEM FILHOS AINDA') AS DEPENDENTES,
DATA_NASCIMENTO AS 'DATA DE NASCIMENTO',
DATEDIFF(YEAR,DATA_NASCIMENTO,GETDATE()) AS 'IDADE',
COD_DEPTO AS 'CÓDIGO DO DEPARTAMENTO',
COD_CARGO AS 'CÓDIGO DO CARGO',
DATA_ADMISSAO AS 'DATA DE ADIMISSAO',
IIF(SALARIO <= 2000.00,'MIXARIA' ,'SALARIO NORMAL') AS 'TIPO DE SALARIO',
SALARIO AS 'SALARIO :''(',
PREMIO_MENSAL AS 'GORJETA/BRINDE',
CASE SINDICALIZADO
WHEN 'S' THEN 'ESTE É EXPLORADO PELO SINDICATO QUE NÃO AJUDA EM NADA!'
WHEN 'N' THEN 'ESTE É EXPLORADO PELA EMPRESA PORQUÊ NÃO TEM NADA QUE O
DEFENDA!'
END AS 'SINDICALIZADO OU NÃO? KKKKK',
OBS AS 'DETALHE DO SUJEITO',
FOTO AS 'FOTO',
COD_SUPERVISOR AS 'CÓDIGO DO SUPERVISOR'
FROM EMPREGADOS
WHERE SALARIO = (SELECT MIN(SALARIO) FROM EMPREGADOS)
------------------------------------------------------------------------------------
--------------------------
---USANDO OUTER JOIN, LEFT E RIGHT JOIN ---TREINANDO-----
USE PEDIDOS
SELECT * FROM [DBO].[IMPORTA_COD_CLASS_DESC] AS D
LEFT OUTER JOIN
[DBO].[IMPORTA_DEVIDO_INDEVIDO] AS I
ON D.CODIGO = I.[COD PROC]
---VERIFICANDO SE DA ERRO
USE PEDIDOS
SELECT * FROM EMPREGADOS EMP
LEFT JOIN
TABELACAR AS CAR
ON EMP.COD_CARGO = EMP.COD_CARGO
--ANOTAÇÃO: GERA UM ERRO, MULTIPLICANDO O NUMERO DE LINHAS DE UMA COLUNA POR O DE
OUTRA
PRINT @RESULTADO
--OBS: NULL NÃO CONTA
----------------------------
--CRIANDO UM FULL JOIN
SELECT * FROM EMPREGADOS AS EMP
FULL OUTER JOIN TABELACAR AS TAB
ON EMP.COD_CARGO = TAB.COD_CARGO
-----------------------------------------------------
------------------------------------------
---PAREI NA 175
---------------------------------------SUBQUERIES--------------------------------
---USANDO EXISTS
t
USE PEDIDOS
SELECT * FROM [DBO].[BD_TRICK] AS TRI
WHERE EXISTS (SELECT * FROM [DBO].[BD_TRICK] AS TRI
WHERE TRI.ID = '2' OR TRI.ID = '3')
USE PEDIDOS
SELECT * FROM [DBO].[PRODUTOS]
SELECT * FROM [DBO].[ITENSPEDIDO]
-------
--USANDO ORDER BY
SELECT PEDIDOS.NUM_PEDIDO,
PEDIDOS.COD_PRODUTO,
PEDIDOS.PR_UNITARIO AS 'PREÇO UNITARIO',
SUM(PEDIDOS.QUANTIDADE) AS 'QUANTIDADE',
SUM(PEDIDOS.QUANTIDADE * PEDIDOS.PR_UNITARIO) AS 'PREÇO TOTAL'
FROM ITENSPEDIDO AS PEDIDOS
WHERE PEDIDOS.DATA_ENTREGA IN (SELECT DATA_ENTREGA FROM ITENSPEDIDO
WHERE DATA_ENTREGA BETWEEN '2012.01.01' AND '2013.01.01')
AND NUM_PEDIDO = 9752
----------------------------------------------------------
INTO ##PESQUISA_TEMPORARIA_FUNCIONARIOS
FROM [DBO].[FUN_FUNCIONARIOS] AS F
JOIN [DBO].[DEPENDENTES] AS D
ON F.FUN_ID = D.CODFUN
------------------------------------------------------------------------------------
--------------
--ESCOLHENDO AS COLUNAS
USE PEDIDOS
t
------------------------
---UPDATE COM JOIN
BEGIN TRANSACTION
UPDATE EMPREGADOS
SET SALARIO = 1500.40
FROM EMPREGADOS E JOIN TABELACAR T
ON E.COD_CARGO = T.COD_CARGO
WHERE T.COD_CARGO = 5
------
SELECT * FROM EMPREGADOS
WHERE COD_CARGO = 5
ROLLBACK
COMMIT
BEGIN TRANSACTION
USE PEDIDOS
TRUNCATE TABLE EMPREGADOS
FROM EMPREGADOS E JOIN TABELACAR T
ON E.CODCARGO = T.COD_CARGO
WHERE T.COD_CARGO = 1
ROLLBACK
---------------------------------------------------------------------------
--USANDO AVG (ALL |DISTINCT )
USE PEDIDOS
SELECT * FROM [DBO].[TRABALHADORES_LOUCOS]
-------------------------------------------------------------------------------
-------AVG SIMPLES + ALL
--DIFERENCIA DE WHERE
SELECT AVG([CÓDIGO DO FUNCIONARIO]) AS 'CÓDIGO FUN', SALARIO AS 'SALARIOS' FROM
TRABALHADORES_LOUCOS
WHERE SALARIO <= 2000.00
GROUP BY ALL SALARIO
ORDER BY SALARIO ASC
----------------------------
--DIFERENCIA DO HAVING
SELECT AVG([CÓDIGO DO FUNCIONARIO]) AS 'CÓDIGO FUN', SALARIO AS 'SALARIOS' FROM
TRABALHADORES_LOUCOS
GROUP BY SALARIO
HAVING SALARIO <= 2000.00
ORDER BY SALARIO ASC
t
------------------------------------------------------------------------------------
------------
PRINT @DIA
PRINT FORMAT(@DIA1,'DDDD')
PRINT FORMAT(@DIA2,'DDDD')
PRINT FORMAT(@DIA3,'DDDD')
PRINT FORMAT(@DIA4,'DDDD')
PRINT FORMAT(@DIA5,'DDDD')
PRINT FORMAT(@DIA6,'DDDD')
--------------------------------------FIM--------------------
USE DB_CMS
SELECT * FROM [DBO].[TB_CMS_REP_HAGENT_30_MIN_SEQ_21]
--------------------------------
USE [DB_REL_OFICIAL]
SELECT * FROM [DBO].[TB_HH]
WHERE DATA = '01/01/2018'
AND CONTROLE_OPERACAO = 'FSPO'
AND CONTROLE_SITE = 'LBD' OR CONTROLE_SITE = 'SBE'
ORDER BY DATA ASC
t
------------CHOOSE E DATEPART------------------------------
SELECT
CHOOSE (DATEPART(WEEKDAY, CAST(CONVERT(DATETIME,DATEACK,103) AS DATE)),
'DOMINGO','SEGUNDA','TERCA','QUARTA','QUINTA','SEXTA','SABADO'
) AS DIADASEMANA
,DATEPART(WEEKDAY,CAST(CONVERT(DATETIME,DATEACK,103) AS DATE)) AS [DATEPART]
FROM [DBO].[VW_CGI_MIS50003_BACKLOG_INTRAGOV_D-1]
----------------------------------------------
----- DELIMITANDO AONDE QUERO PEGAR EM QUAL LINHA COM SET E OFFSET--------------
SELECT * FROM [DBO].[VW_CGI_MIS50003_BACKLOG_INTRAGOV_D-1] A
ORDER BY A.[NODEID]
OFFSET 10 ROWS FETCH NEXT 20 ROWS ONLY
-----------------------------------------------------------------------
----BULK INSERT PARA INSERIR DADOS (NÃO DEU CERTO)
--USE [DB_OUTROS]
--BULK INSERT [TB_BULK_INSERT_TEST]
-- FROM 'C:\TESTE\EXTRACAO__CARTA_E_FAX_TESTE.TXT'
-- WITH(
-- FIRSTROW = 2,
-- FIELDTERMINATOR =';'
-- );
--------------------------------------------
-----CRIAR TABERLA PARA BULK TESTE
USE [DB_OUTROS]
--DROP TABLE [DBO].[TB_BULK_INSERT_TEST]
GO
CREATE TABLE [DBO].[TB_BULK_INSERT_TEST](
CD_EXTRACAO VARCHAR(MAX),
DTH_EXTRACAO VARCHAR(MAX),
CD_ORIGEM VARCHAR(MAX),
CD_PROCESSO VARCHAR(MAX)
)
GO
--------------------------------------------------------------
USE [DB_WFM]
--DROP TABLE [TB_BUDA_DIM_CLP_TESTE]
MERGE [TB_BUDA_DIM_CLP_TESTE] AS A
USING [DB_WFM].[DBO].[TB_BUDA_DIM_FUNC] AS B
ON A.[ID_SEQ_FUNCIONARIO] = B.[ID_SEQ_FUNCIONARIO]
WHEN MATCHED THEN
UPDATE SET B.[ST_DES_CARGO] = 'CARGO_IGUAL';
--------------------------------------------------------------
t
USE [DB_OUTROS]
DECLARE
@SELECT VARCHAR(MAX),
@TABELA VARCHAR(MAX),
@CONDIÇÃO VARCHAR(MAX),
@WHERE VARCHAR(MAX),
@RUN VARCHAR(MAX),
@RUN2 VARCHAR(MAX),
@UNION VARCHAR(MAX)
PRINT(@RUN2)
EXEC(@RUN2)
--------------
PRINT(@TESTESELECT)
EXEC(@TESTESELECT)
------------------------
SELECT SCOPE_IDENTITY()
----------------------------------------------------------------------------
--INICIANDO UM MERGE TESTE
----------------------------------
--UPDATE EM ALGUMAS COISAS DA TEMP
UPDATE [DBO].[JOBSTATUS_TEMP]
SET [ORIGINATING_SERVER] = ''
t
WHERE [LAST_RUN_TIME] = 0
-------------------------------------
SET IDENTITY_INSERT [JOBSTATUS_TEMP] OFF
--INICIANDO O MERGE
MERGE [JOBSTATUS_TEMP] AS T -- TABELA ALVO
USING [JOBSTATUS] AS ORIGI -- TABELA DE COMPARAÇÃO
ON T.[LAST_RUN_TIME] <> ORIGI.[LAST_RUN_TIME] --CONDIÇÃO DE
COMPARAÇÃO
WHEN MATCHED THEN
UPDATE SET T.[ORIGINATING_SERVER] = ORIGI.[ORIGINATING_SERVER]
---EXCLUINDO TEMP
DROP TABLE [DBO].[JOBSTATUS_TEMP]
----------------------------------------------------------------------
-----------------TESTANDO O MERGE NOVAMENTE
--CRIANDO TEMP
USE [DB_CONSUMO]
SELECT * INTO [DBO].[TB_WFM_MIS50064_GRUPO_69_TEMP] FROM [DBO].
[TB_WFM_MIS50064_GRUPO_69]
----------------
--DELETANDO TEMP
DROP TABLE [DBO].[TB_WFM_MIS50064_GRUPO_69_TEMP]
-----------------
SELECT * FROM [DBO].[TB_WFM_MIS50064_GRUPO_69_TEMP]
WHERE [DATA] = '20180321'
AND [RE] = '683561'
AND [QTD] = '28800'
------------------
--USANSDO UPDATE
UPDATE [DBO].[TB_WFM_MIS50064_GRUPO_69_TEMP]
SET [QTD] = NULL
WHERE [DATA] = '20180321'
AND [RE] = '683561'
--AND [QTD] = '28800'
---------------------------
--TESTANDO O MERGE
BEGIN TRANSACTION
ROLLBACK TRANSACTION
------------------------------------------------
-----TRABALHANDO COM OUTPUT
t
SELECT [RE],
[1] AS 'MES 1',
[2] AS 'MES 2',
[3] AS 'MES 3',
[4] AS 'MES 4'
FROM
(SELECT
[RE],
MONTH(CAST(SUBSTRING(CAST([DATA] AS VARCHAR),5,2) AS FLOAT)) AS MES,
CAST([QTD] AS INT) AS [QTD]
FROM [DBO].[TB_WFM_MIS50064_GRUPO_69_TEMP]
WHERE SUBSTRING(CAST([DATA] AS VARCHAR),1,4) = '2018'
--AND [RE] = '1137685'
) AS P
--WHERE SUBSTRING(CAST([DATA] AS VARCHAR),1,4) = '2018'
PIVOT(AVG(QTD) FOR [MES] IN
([1], [2], [3], [4])
) AS PVT
-----------------------------------
--- UNPIVOT()
------------------------------------------------
---CRIANDO SEQUENCIAS----
--CRIANDO SEQUENCIA
CREATE SEQUENCE [DBO].TESTE_HENRIQUE
START WITH 1000
INCREMENT BY 10
MINVALUE 10
MAXVALUE 10000
CYCLE CACHE 10;
--CRIANDO TABELA
CREATE TABLE [DBO].[TB_STG_TEMP_TESTE_HENRIQUE]
(
ID INT NOT NULL,
NOME VARCHAR(MAX)
)
----------------------------------------------------------------------
USE DB_CONSUMO
---CRIANDO SINONIMO
CREATE SYNONYM [TB_AALU_NOMES_TESTE_D-1] FOR DBO.AALU;
--VERIFICANDO TABELA
SELECT * FROM DBO.[TB_AALU_NOMES_TESTE_D-1]
GO
-----------------------------------------------------------
--CRIANDO SININIMO PARA A TABELA
CREATE SYNONYM DBO.[VW_WMF_TESTE_SYNONYM] FOR [DBO].
[VW_WFM_MIS3453_QUARTIL_MOVEL_DADOS_OPER]
--------------------------------------------------------------
USE DB_CONSUMO
SELECT
DB.NAME,
(SUM(SIZE) *8)/1024 AS UTILIZADO_MB,
(SUM(MAX_SIZE)*8)/ 1024 AS TAMANHO_TOTAL_MB
FROM SYS.DATABASES DB
t
ON DB.DATABASE_ID = SYS.MASTER_FILES.DATABASE_ID
GROUP BY DB.NAME
---------------------------------------------
USE MASTER
SELECT * FROM SYSLOCKS
---
SELECT * FROM SYS.DM_TRAN_LOCKS
---
USE DB_CONSUMO
SELECT @@LOCK_TIMEOUT
------------
-------------
EXEC SP_CONFIGURE
-----------
USE [DB_OUTROS]
-----------------------------------------------------
t
(
SELECT @ID_DO_BANCO
UNION ALL
SELECT @ID_DO_BANCO + 1 AS [BANCO]
FROM TB_CTE_ALL_VIEWS_ON_BDS
WHERE @ID_DO_BANCO < 20
/*
SELECT 'DB_CONSUMO' AS [BANCO],
[OBJECT_ID] AS [ID TABELA],
[NAME] AS [NOME TABELA],
[CREATE_DATE] AS [DATA CRIAÇÃO],
[MODIFY_DATE] AS [DATA DE ALTERAÇÃO]
FROM SYS.VIEWS
*/
)
SELECT * FROM TB_CTE_ALL_VIEWS_ON_BDS
---------------
SELECT * FROM SYS.DATABASES
SELECT MAX(DATABASE_ID) FROM SYS.DATABASES
-------------------------------------------------------------
SELECT
A.[TABLE_CATALOG] AS [NOME_BANCO],
A.[VIEW_NAME] AS [NOME DA TABELA],
A.[TABLE_NAME] AS [TABELA_REFERENCIA_DA_VIEW],
B.[VIEW_DEFINITION] AS [CONTEUDO_DA_VIEW]
FROM
(SELECT DISTINCT [TABLE_CATALOG], [VIEW_NAME], [TABLE_NAME]
FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE ) AS A
JOIN INFORMATION_SCHEMA.VIEWS B
ON A.[VIEW_NAME] = B.[TABLE_NAME]
t
--------------------------------
--VERIFICAR PROCESSOS COM DEADLOCK `PROCESSOS TRANCADOS`
SP_WHO
SELECT * FROM SYS.DM_OS_WAITING_TASKS
------------------------------------------------------------------------------------
--
--habilitar a funçao openrowset
EXEC sp_configure 'show advanced option', '1';
reconfigure
------------------------------------------------------------------------------------
------
--ABRINDO ARQUIVO EXCEL SIMPLES
SELECT *
FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\teste\PESSOAS.XLSX',
'SELECT [COD], [NOME] FROM [NOMES$]')
USE [DB_CONSUMO]
SELECT TOP 10
V.[type_DESC],
V.[NAME] AS [NOME DA VIEW],
V.[CREATE_DATE] AS [DATA DA CRIAÇÃO],
V.[modify_date] AS [DATA DA MODIFICAÇÃO],
CAST(C.[text] AS VARCHAR(MAX)) AS [QUERY DA VIEW]
------------VIEEWS PERSONALIZADAS----------------
--VIEW ENCRIPTADA
--
SELECT TOP 10 * FROM SYS.SQL_DEPENDENCIES
-------------------------------------------------------------
-------FUNÇÕES AVANÇADAS--------------
DECLARE @@N1 INT
DECLARE @@N2 INT
SET @@N1 = 2
SET @@N2 = 2
SELECT
DAY([CREATE_DATE]) AS [DIA DA CRIAÇÃO],
AVG([SCHEMA_ID]) AS [CALCULA_MÉDIA], -- CALCULA A MÉDIA
COUNT([SCHEMA_ID]) AS [CONTA_REGISTROS], -- CONTADOR DE REGISTROS
SUM([SCHEMA_ID]) AS [SOMADOR_DE_REGISTROS], -- SOMA REGISTROS DECIMAIS
MIN([object_id]) AS [O_MENOR_REGISTRO], -- TRAZ O MENOR REGISTRO
MAX([object_id]) AS [O_MAIOR_REGISTRO], -- TRAZ O MAIOR REGISTRO
--GROUPING([PRINCIPAL_ID]) AS [GROUPING], -- IDENTIFICA VALORES NULOS GERADOS
POR CÓDIGO DOS PADRÕES JA EXISTENTES NA TABELA
STDEV(DISTINCT [object_id]) AS [RETORNA_DESVIO_PADRAO], -- RETORNA O DESVIO
PADRÃO ESTATÍSTICO DE TODOS OS VALORES DA EXPRESSÃO
STDEVP([object_id]) AS [FUNÇÃO DETERMINISTICA], --RETORNA VALORES ESPECIFICOS
PRÉ DETERMINADOS SE NÃO USAR OVER OU ORDER BY, E O AO CONTRARIO SE USAR.
VAR([object_id]) AS [VARIANCIA ESTATÍSTICA], --RETORNA A VARIANCIA
ESTATÍTTICA DE TODOS OS VALORES DA EXPRESSÃO.
--(VAR([SCHEMA_ID]) OVER (ORDER BY [SCHEMA_ID])) AS [VARIANCIA ESTATÍSTICA
COM OVER] --
VARP([object_id]) AS [RETORNA OS VALORES DE COTA] -- RETORNA OS VALORES DE
COTA, INCLUINDO OS VALORES DUPLICADOS.
FROM [DB_CONSUMO].SYS.VIEWS
GROUP BY DAY([create_date])
------------------------------------------------------------------------------------
------------
SELECT
t
--EXECUTANDO A FUNÇÃO
SELECT * FROM [dbo].[FUNC_DADO_TABULAR_TESTE] ('07','08')
--DROPANDO A FUNCTION (EXCLUINDO)
DROP FUNCTION [dbo].[FUNC_DADO_TABULAR_TESTE]
-------------------------------------------------------------------------------
----------INTRODUÇÃO A PROGRAMAÇÃO NO SQL SERVER--------------------PG 166 - SQL MOD
II
DECLARE @NUM1 VARCHAR(MAX), @NUM2 VARCHAR(MAX)
SET @NUM1 = 'X'
SET @NUM2 = 'X'
IF @NUM1 > @NUM2
BEGIN
PRINT ('O NUM1 DE VALOR: ')+(@NUM1)+(' É MAIOR QUE O NUM2 DE
VALOR: ')+(@NUM2)
END
IF @NUM1 < @NUM2
t
BEGIN
PRINT ('O NUM1 DE VALOR: ')+(@NUM1)+(' É MENOR QUE O NUM2 DE
VALOR: ')+(@NUM2)
END
IF @NUM1 = @NUM2
BEGIN
PRINT('OS NUMEROS SÃO IGUAIS')
END
ELSE
BEGIN
PRINT ('IN CATCH')
END
------------------------------------------------------------------------------------
-------
--FORÇANDO UM ERRO COM PROGRAMAÇÃO
BEGIN TRANSACTION
BEGIN TRY
INSERT [dbo].[TB_TABELA_TESTE_TESTINHA]
(ID) VALUES(1);
-- Force error 2627, Violation of PRIMARY KEY constraint to be raised.
INSERT [dbo].[TB_TABELA_TESTE_TESTINHA]
(ID) VALUES(1);
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
COMMIT TRANSACTION
--
DROP TABLE [dbo].[TB_TABELA_TESTE_TESTINHA]
------------------------------------------------------------------------------------
-----PROGRAMAÇÃO NO SQL USANDO LOOP
DECLARE @COUNT INT = 0;
------------------------TESTE 2 LOOP
--USANDO RETORNO
PRINT 'PROJETO 1'
PRINT 'PROJETO 2'
RETURN
t
GOTO INICIO
MEIO:
PRINT 'PASSO QUASE FINAL'
WAITFOR DELAY '00:00:02'
PRINT 'DELAY DE 2 SEGUNDOS'
GOTO FIM
INICIO:
PRINT 'PASSO UM'
WAITFOR DELAY '00:00:01'
PRINT 'DELAY DE 1 SEGUNDO'
GOTO MEIO
FIM:
PRINT 'PROCESSO TERMINADO'
---------------------------------------------