guia de consulta rapida - sqlserver e transactsql

130
GUIA DE CONSULTA RÁPIDA novatec Renato Piques Rubens Prates www.novatec1.co SQL Server 7 Transact-SQL Piques • Prates SQL Server 7 Transact-SQL novatec

Upload: maferocha

Post on 02-Jan-2016

64 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guia de Consulta Rapida - SQLServer e TransactSQL

GUIA DE

CONSULTA

RÁPIDA

novatec

Renato Piques

Rubens Prates

www.novatec1.co

SQL Server 7

Transact-SQL

Piq

ue

s

• P

ra

tes

SQ

L

Se

rve

r

7

Tra

ns

ac

t-SQ

Ln

ov

ate

c

Page 2: Guia de Consulta Rapida - SQLServer e TransactSQL

Novatec Editorawww.novateceditora.com.br

Renato Piques

Rubens Prates

SQL Server 7

Transact-SQL

Guia de Consulta Rápida

Page 3: Guia de Consulta Rapida - SQLServer e TransactSQL

2

Guia de Consulta RápidaSQL Server 7 Transact-SQL

de Renato Piques e Rubens Prates.

Copyright@2000 da Novatec Editora Ltda.

Todos os direitos reservados. É proibida a reprodução dessaobra, mesmo parcial, por qualquer processo, sem préviaautorização, por escrito, dos autores e da Editora.

Revisão de texto: Sonia Maike

ISBN: 85-85184-70-1

Novatec Editora Ltda.Rua Cons. Moreira de Barros 1084 Conj. 0102018-012 São Paulo - SP BrasilFone: (0xx11) 6959-6529Fax: (0xx11) 6950-8869E-mail: [email protected]: www.novateceditora.com.br

Page 4: Guia de Consulta Rapida - SQLServer e TransactSQL

3

Sumário

Comandos SQL .................................................................. 5Comandos DBCC ............................................................ 62Comandos SET ................................................................ 73Funções de Agregação ..................................................... 81Funções de Configuração ................................................ 83Funções de Cursor ........................................................... 85Funções de Data e Hora ................................................... 86Funções Matemáticas ....................................................... 88Funções Metadata ............................................................ 91Funções de Segurança ...................................................... 98Funções String ............................................................... 100Funções do Sistema ....................................................... 103Funções de Estatística do Sistema ................................. 107Funções de Texto e Imagem .......................................... 108Operadores ..................................................................... 109

Operadores Aritméticos ........................................... 109Operadores Bitwise .................................................. 109Operadores de Comparação ..................................... 110Operadores Lógicos ................................................. 111Operadores Unários ................................................. 112Níveis de Precedência de Operadores ..................... 112

Tipos de Dados do SQL Server ..................................... 116Inteiros (integer) ...................................................... 116Numéricos ................................................................ 116Dados Monetários .................................................... 116Numéricos Aproximados ......................................... 117Datetime and Smalldatetime .................................... 117Strings de Caracteres ............................................... 117Strings de Caracteres Unicode ................................. 118Strings Binários ........................................................ 118Sinônimos ................................................................ 118

Constantes e Identificadores .......................................... 119Palavras reservadas ........................................................ 120Site Oficial do SQL Server 7 ......................................... 121Notação Utilizada neste Guia ........................................ 121Novatec na Internet ........................................................ 121Índice ............................................................................. 122

Page 5: Guia de Consulta Rapida - SQLServer e TransactSQL

4

Page 6: Guia de Consulta Rapida - SQLServer e TransactSQL

5

Comandos SQL

Comentários

Insere um comentário em qualquer lugar de um comandoSQL. Dois estilos de comentários são aceitos: estiloTransact-SQL (/* ...*/) e estilo padrão ANSI (--).

/* texto_do_comentário */

ou

-- texto_do_comentário

ALTER DATABASE

Altera a estrutura física de um banco de dados.

ALTER DATABASE banco_dados

{ ADD FILE filespec [,...] [ TO FILEGROUP filegroup ]| ADD LOG FILE filespec [,...]| REMOVE FILE nome_lógico

| ADD FILEGROUP filegroup

| REMOVE FILEGROUP filegroup

| MODIFY FILE filespec

| MODIFY FILEGROUP filegroup propriedade

}

filespec ::=(NAME = nome_lógico

[, FILENAME = 'nome_físico' ][, SIZE = tamanho][, MAXSIZE = { tamanho_max | UNLIMITED } ][, FILEGROWTH = incremento] )

Argumento Descrição

banco_dados Nome do banco de dados a ser alterado.

ADD FILE Nome do arquivo a ser adicionado.

TO FILEGROUP Filegroup no qual o arquivo seráadicionado. Se nenhum for especificado,será adicionado ao filegroup padrão(PRIMARY).

ADD LOG FILE Nome do arquivo de log a ser adicionadoao banco de dados.

REMOVE FILE Remove um arquivo do banco de dados. Oarquivo deverá estar vazio antes de serremovido.

ADD FILEGROUP Filegroup a ser adicionado ao banco dedados.

Comandos

Page 7: Guia de Consulta Rapida - SQLServer e TransactSQL

6

REMOVE FILEGROUP Remove um filegroup do banco de dados.

MODIFY FILE Permite alterar as propriedades de umarquivo, incluindo suas opçõesFILENAME, SIZE, FILEGROWTH, eMAXSIZE.

MODIFY FILEGROUP Permite alterar as propriedades de umfilegroup (READONLY, READWRITE eDEFAULT).

READONLY Especifica que o filegroup é “read-only”.Atualizações nos objetos do filegroup nãoserão permitidas.

READWRITE Reverte a propriedade READONLY.Atualizações nos objetos do filegroupserão permitidas.

DEFAULT Filegroup default para o banco de dados.

filespec

NAME Nome lógico do arquivo.

FILENAME Nome físico do arquivo.

SIZE Tamanho do arquivo. Os sufixos MB e KBpodem ser utilizados para especificarmegabytes ou kilobytes (default=1MB).

MAXSIZE Tamanho máximo que o arquivo podeatingir. A opção UNLIMITED especificaque o arquivo pode aumentar até o discoficar cheio.

FILEGROWTH Incremento de crescimento do arquivo. Ovalor pode ser especificado em MB, KB ou% (porcentagem do tamanho do arquivono momento em que o incremento ocorre).

Comandos

Page 8: Guia de Consulta Rapida - SQLServer e TransactSQL

7

ALTER PROCEDURE

Altera a estrutura de uma stored procedure, sem alterarpermissões e sem afetar qualquer stored procedure outrigger dependente.

ALTER PROC[EDURE] nomeproc [;número][{@parâmetro tipo_dado } [ VARYING] [= default ] [OUTPUT]][,...][ WITH { RECOMPILE | ENCRYPTION |RECOMPILE , ENCRYPTION } ][ FOR REPLICATION ]AS comandos_sql [...]

Parâmetro Descrição

nomeproc Nome da procedure a ser alterada.

;número Número inteiro usado para agrupar proceduresde mesmo nome, para que sejam removidasde uma só vez pelo comando DROPPROCEDURE.

@parâmetro Parâmetro para a procedure. Um ou maisparâmetros podem ser declarados.Parâmetros são locais à procedure.

tipo_dado Tipo de dado do parâmetro.

VARYING Utilizado somente para parâmetros de retornodo tipo cursor. Permite que o resultado sejaconstruído dinamicamente dentro daprocedure e retornado como um cursor parao objeto que fez a chamada a essa procedure.

default Valor default do parâmetro.

OUTPUT Identifica um parâmetro de retorno.

RECOMPILE Ignora o plano de execução existente e geraoutro sempre que a procedure for executada.

ENCRYPTION Criptografa o texto de criação da procedureque fica na tabela syscomments.

FOR REPLICATION Especifica que as procedures criadas parareplicação, não podem ser executadas noservidor assinante. Utilizado para criação deprocedures para filtros de replicação.

AS Especifica as ações que a procedure devetomar, que são os comandos SQL que serãocolocados logo após esse identificador.

comandos_sql Comandos da stored procedure.

Comandos

Page 9: Guia de Consulta Rapida - SQLServer e TransactSQL

8

ALTER TABLE

Altera a definição de uma tabela.

ALTER TABLE tabela

{[ ALTER COLUMN coluna

{ novo_tipo_dado [ ( precisão [, escala] ) ][ NULL | NOT NULL ]

| {ADD | DROP} ROWGUIDCOL}]

| ADD{ [ definição_coluna ] | coluna AS coluna_calculada

} [,...]| [ WITH { CHECK | NOCHECK } ]

ADD { constraint_tabela } [,...]

| DROP{ [CONSTRAINT] nome | COLUMN coluna } [,...]

| {CHECK | NOCHECK } CONSTRAINT {ALL | nome [,...]}

| {ENABLE | DISABLE} TRIGGER {ALL | trigger [,...] }}

definição_coluna ::={ coluna tipo_dados }[ [ DEFAULT expressão_constante ]| [ IDENTITY [(valor_inicial, incremento )[NOT FOR REPLICATION] ] ]][ ROWGUIDCOL ][ constraint_coluna ] [ ...]

constraint_coluna ::=[CONSTRAINT nome]{[ NULL | NOT NULL ]| [ { PRIMARY KEY | UNIQUE }[ CLUSTERED | NONCLUSTERED][ WITH FILLFACTOR = fator_preenchimento ][ ON {filegroup | DEFAULT} ]]]| [ [FOREIGN KEY] REFERENCES tabela_ref [ (col_ref) ][NOT FOR REPLICATION]]| CHECK [NOT FOR REPLICATION] (expr_lógica)

}

Comandos

Page 10: Guia de Consulta Rapida - SQLServer e TransactSQL

9

constraint_tabela ::=[CONSTRAINT nome_constraint]{ [ { PRIMARY KEY | UNIQUE }[ CLUSTERED | NONCLUSTERED]{ ( coluna[,...] ) }[ WITH FILLFACTOR = fator_preenchimento][ON {filegroup | DEFAULT} ]]| FOREIGN KEY [ (coluna[,...] ) ]REFERENCES tabela_ref [ (col_ref [,...]) ][ NOT FOR REPLICATION ]| DEFAULT expressão_constante

[ FOR coluna ]| CHECK [NOT FOR REPLICATION] (expr_lógica)

}

Parâmetro Descrição

tabela Nome da tabela a ser alterada. O nome dobanco de dados e do dono do objetodevem ser especificados quando estiversendo feita referência a objetos de outrosbancos de dados que não o corrente.

ALTER COLUMN Especifica a coluna a ser substituída oualterada.

coluna Nome da coluna a ser alterada, adicionadaou removida.

novo_tipo_dado Novo tipo de dado para a coluna alterada.

precisão Precisão do tipo de dados especificado.

escala Escala do tipo de dados especificado.

NULL | NOT NULL Especifica se a coluna aceita valoresNULL.

ROWGUIDCOL Adiciona (ADD) ou remove (DROP) apropriedade ROWGUIDCOL da colunaespecificada. ROWGUIDCOL é umapalavra-chave que indica que a colunatem um GUID atribuído.

ADD Especifica que uma ou mais definições decolunas, de colunas calculadas ouconstraints de tabelas estão sendoadicionadas.

definição_coluna Vide abaixo.

coluna_calculada Expressão que define uma colunacalculada, que é uma coluna virtual e nãoé armazenada fisicamente no banco dedados, pois é calculada utilizando valoresde outras colunas da mesma tabela.

Comandos

Page 11: Guia de Consulta Rapida - SQLServer e TransactSQL

10

WITH CHECK | WITH NOCHECK

Especifica se os dados da tabela devemser validados em relação a uma restriçãoCHECK ou FOREIGN KEY recentementeadicionada ou reabilitada.

DROP Remove uma constraint (CONSTRAINT)ou coluna (COLUNA) da tabela.

CONSTRAINT Habilita (CHECK) ou desabilita(NOCHECK) uma constraint ou todas (ALL)as constraints da coluna. Somente paraconstraints FOREIGN KEY e CHECK.

TRIGGER Habilita (ENABLE) ou desabilita(DISABLE) um trigger ou todos (ALL) databela.

Definição_coluna

coluna Nome da coluna.

tipo_dado Tipo de dado da nova coluna.

DEFAULT Valor default da coluna.

IDENTITY Especifica que a nova coluna tempropriedade de auto-incremento.

valor_inicial Valor a ser usado para a primeira linhacarregada na tabela.

incremento Valor incremental que é adicionado aovalor de identidade da linha anteriormentecarregada.

NOT FOR REPLICATION

A propriedade de auto-incremento nãoserá executada pelo processo dereplicação.

ROWGUIDCOL A coluna é o identificador global da linha.

Constraint_coluna

CONSTRAINT Indica o início da definição de umaconstraint PRIMARY KEY, FOREIGN KEY,CHECK ou DEFAULT.

nome_constraint Nome da constraint. Se não forespecificado, o SQL Server atribuirá umnome implícito à constraint.

PRIMARY KEY É uma constraint que força a integridadereferencial de entidade para uma dadacoluna ou colunas por meio de um índiceexclusivo.

UNIQUE É uma constraint que fornece integridadede entidade para uma dada coluna oucolunas por meio de um índice exclusivo.

Comandos

Page 12: Guia de Consulta Rapida - SQLServer e TransactSQL

11

CLUSTERED | NONCLUSTERED

Cria um índice clusterizado (CLUSTERED)ou não clusterizado (NONCLUSTERED)para a constraint PRIMARY KEY ouUNIQUE.

WITH FILLFACTOR Especifica o nível de preenchimento emrelação a cada página de um índice usadapara armazenar os dados de índice.

ON Especifica a localização dearmazenamento do índice que é criadopara a constraint.

FOREIGN KEY Requer que cada valor na coluna exista nacoluna especificada na tabela que estásendo referenciada.

REFERENCES É uma constraint que fornece integridadereferencial aos dados da coluna.

tabela_referenciada Nome da tabela à qual está sendo feitareferência por uma constraint FOREIGNKEY.

coluna_referenciada Coluna ou colunas entre parênteses asquais está sendo referência pela novaconstraint FOREIGN KEY.

NOT FOR REPLICATION

A propriedade de auto-incremento nãoserá executada pelo processo dereplicação.

CHECK Define os valores válidos para a coluna.Semelhante às regras de validação (videCREATE RULE).

expressão_lógica Expressão lógica que define a regra devalidação da coluna.

Constraint_tabela

coluna Coluna ou colunas entre parêntesesusadas na nova constraint.

FOR coluna Especifica a coluna a ser usada com umaconstraint DEFAULT de níveis de tabela.

Comandos

Page 13: Guia de Consulta Rapida - SQLServer e TransactSQL

12

ALTER TRIGGER

Altera a definição de um trigger.

ALTER TRIGGER nome_trigger

ON nome_tabela

[WITH ENCRYPTION]{{FOR { [DELETE] [,] [UPDATE] [,][INSERT] }[NOT FOR REPLICATION]AS comando_sql [...]}|{FOR { [INSERT] [,] [UPDATE] }[NOT FOR REPLICATION]AS{ IF UPDATE (coluna)

[{AND | OR} UPDATE (coluna)] [...]| IF (COLUMNS_UPDATED() {operador_binário} bitmask){ operador_comparação} bitmask_coluna [...]}comando_sql [...]}}

Argumento Descrição

nome_trigger Nome do trigger a ser alterado.

nome_tabela Nome da tabela à qual o trigger estáassociado.

WITH ENCRYPTION Criptografa a definição do trigger na tabelasyscomments.

{ [DELETE] [,] [INSERT] [,] [UPDATE] } | { [INSERT] [,] [UPDATE]}

Tipos de operações que ativam otrigger. Pelo menos um tipo deve serespecificado.

NOT FOR REPLICATION Não executa o trigger quando aalteração da tabela for feita peloprocesso de replicação de dados.

AS comando_sql Identifica uma seqüência lógica decomandos SQL que representa asações que o trigger deve tomar. Existemduas tabelas que ficam disponíveisdurante a execução dos triggers e quesão de grande importância. São elas:deleted e inserted. Elas têmexatamente a mesma estrutura databela que sofreu o INSERT, DELETEou UPDATE e contêm as linhas novas(INSERTED) e antigas (DELETED)afetadas por esses comandos.

Comandos

Page 14: Guia de Consulta Rapida - SQLServer e TransactSQL

13

IF UPDATE(coluna) Testa se uma coluna foi alterada.

IF (COLUMNS_UPDATED())

Testa quais colunas foram inseridas e/ou alteradas.

Operador_bit_a_bit Operador bit a bit.

bitmask_atualizado Bitmask das colunas que foramalteradas.

operador_comparação Operador de comparação (=), (<), (>).

bitmask_coluna Bitmask das colunas que serãoverificadas.

ALTER VIEW

Altera a definição de uma view.

ALTER VIEW nome_view [ (coluna [,...]) ][ WITH ENCRYPTION ]AS comando_select

[ WITH CHECK OPTION ]

Argumento Descrição

nome_view Nome da view a ser alterada.

coluna Nome da(s) coluna(s) da view.

WITH ENCRYPTION Criptografa o comando CREATE VIEWna tabela syscomments.

AS Especifica o comando SELECT quedefine a view. Não pode incluir ascláusulas ORDER BY, INTO,COMPUTE ou COMPUTE BY.

WITH CHECK OPTION Força os comandos de modificação dedados, aplicados pela visualização, autilizarem os critérios no comandoSELECT que define a view.

Comandos

Page 15: Guia de Consulta Rapida - SQLServer e TransactSQL

14

BACKUP

BACKUP DATABASE

Efetua backup de um banco de dados. Backups criadoscom o SQL Server 7.0 não podem ser restaurados nasversões anteriores do SQL Server.

Backup do banco de dados inteiro:

BACKUP DATABASE nome_bd

TO disp_backup [,...][ WITH[ BLOCKSIZE = tam_bloco][ [,] DESCRIPTION = texto][ [,] DIFFERENTIAL][ [,] EXPIREDATE = data

| RETAINDAYS = num_dias][ [,] FORMAT | NOFORMAT][ [,] {INIT | NOINIT}][ [,] MEDIADESCRIPTION = texto][ [,] MEDIANAME = nome][ [,] [NAME = nome][ [,] {NOSKIP | SKIP}][ [,] {NOUNLOAD | UNLOAD} ][ [,] [RESTART][ [,] STATS [= porcentagem] ]]

Backup de arquivos ou filegroups:

BACKUP DATABASE nome_bd

{ FILE = nome_lógico | FILEGROUP = nome_lógico} [,...]TO disp_backup [,...][WITH opções]

BACKUP LOG

Backup de um log de transações.

BACKUP LOG nome_bd

{[WITH { NO_LOG | TRUNCATE_ONLY }]}|{TO disp_backup [,...] [ WITH opções] }

Argumento Descrição

disp_backup Dispositivo de backup utilizado naoperação de backup.

BLOCKSIZE Tamanho físico (em bytes) do bloco.

DESCRIPTION Texto descritivo do backup (até 255caracteres).

Comandos

Page 16: Guia de Consulta Rapida - SQLServer e TransactSQL

15

DIFFERENTIAL Efetua backup somente das páginasmodificadas no banco de dados desde oúltimo backup completo.

EXPIREDATE Data que o backup expira e pode sersobrescrito.

RETAINDAYS Número de dias decorridos até que amídia possa ser sobrescrita.

FORMAT Especifica que o header da mídia deve sergravado em todos os volumes do backup.

NOFORMAT Especifica que o header da mídia nãodeve ser gravado em todos os volumes dobackup.

INIT | NOINIT Especifica se inicializará ou não o dispositivode backup antes de gravar o backup.

MEDIADESCRIPTION Campo de comentário para o backup.

MEDIANAME Descrição do conjunto de backup.

NAME Nome do backup.

NOSKIP Verifica o cabeçalho e a data de expiraçãoda mídia para evitar sobrescreveracidentalmente uma mídia.

SKIP Salta a leitura do header da mídia quandograva em uma fita.

NOUNLOAD Não ejeta a fita automaticamente dodispositivo de fita ao término da execuçãodo comando.

UNLOAD Retrocede e ejeta automaticamente a fitado dispositivo de fita ao término daexecução do comando (opção default).

RESTART Reinicia o backup a partir do ponto em quefoi interrompido anteriormente.

STATS Freqüência de notificação do progressodo backup (default=10, que significa queserá notificado toda vez que completar10% do backup).

FILE Nome dos arquivos a serem incluídos nobakup.

FILEGROUP Filegroups a serem incluídos no backupdo banco de dados.

LOG Faz backup somente do log de transações.

NO_LOG Não grava o comando de backup no log detransações.

TRUNCATE_ONLY Limpa o log de transações sem fazerbackup do mesmo.

NO_TRUNCATE Faz um backup do log de transação, semeliminar do log as transações que foramcopiadas pelo backup.

Comandos

Page 17: Guia de Consulta Rapida - SQLServer e TransactSQL

16

BEGIN...END

Delimita um bloco de comandos SQL, que será tratadocomo uma unidade.

BEGIN{instrução_sql | bloco_comandos}

END

BEGIN DISTRIBUTED TRANSACTION

Especifica o início de uma transação distribuídagerenciada pelo Microsoft Distributed TransactionCoordinator (MS DTC). Uma transação distribuídaenvolve bancos de dados em mais de um servidor.

BEGIN DISTRIBUTED TRAN[SACTION] [transação]

Parâmetro Descrição

transação Nome da transação para os utilitários MS DTC.

BEGIN TRANSACTION

Identifica o início de uma transação local explícita.Incrementa a variável global @@TRANCOUNT de 1.

BEGIN TRAN[SACTION] [transação]

Parâmetro Descrição

transação Nome da transação (somente os primeiros 32caracteres do nome da transação serão utilizados).Pode ser usado apenas no par mais externo dedeclarações BEGIN...COMMIT ouBEGIN...ROLLBACK aninhadas.

BREAK

Sai do laço WHILE mais interno. Os comandos após apalavra-chave END são ignorados.

Comandos

Page 18: Guia de Consulta Rapida - SQLServer e TransactSQL

17

BULK INSERT

Copia um arquivo de dados para uma tabela.

BULK INSERT [['nome_db'.]['proprietário'].]{'tabela' FROMarquivo}[ WITH(

[ BATCHSIZE [= tamanho_lote] ][ [,] CHECK_CONSTRAINTS ][ [,] CODEPAGE [= 'ACP' | 'OEM' | 'RAW' | 'cod_página'] ][ [,] DATAFILETYPE [={'char' | 'native'| 'widechar' | 'widenative'}] ][ [,] FIELDTERMINATOR [= 'terminador_campo'] ][ [,] FIRSTROW [= primeira_linha] ][ [,] FORMATFILE [= 'arquivo_formatos'] ][ [,] KEEPIDENTITY][ [,] KEEPNULLS][ [,] KILOBYTES_PER_BATCH [= kb_lote] ][ [,] LASTROW [= última_linha] ][ [,] MAXERRORS [= max_erros] ][ [,] ORDER ({coluna [ASC | DESC]} [,...]) ][ [,] ROWS_PER_BATCH [= linhas_lote] ][ [,] ROWTERMINATOR [= 'terminador_linha'] ][ [,] TABLOCK]) ]

Argumento Descrição

nome_bd Nome do banco de dados da tabela quereceberá os dados do arquivo.

proprietário Nome do proprietário da tabela ou daview.

tabela Nome da tabela ou view que receberá osdados.

arquivo Nome do arquivo (incluindo o pathcompleto) a ser copiado para a tabela oupara a view.

BATCHSIZE Número de linhas por lote transferido parao servidor. Cada lote é feito em umatransação.

CHECK_CONSTRAINTS

Executa as constraints definidas para atabela.

CODEPAGE [= 'ACP' | 'OEM' | 'RAW' | 'código_página']

Código de página localizado no arquivode dados. Esta opção será relevantesomente quando os dados forem do tipochar e utilizarem caracteres estendidos(códigos maiores que 127 ou menoresque 32).

Comandos

Page 19: Guia de Consulta Rapida - SQLServer e TransactSQL

18

ACP Colunas do tipo char, varchar, ou text

são convertidas do código de página ANSI/Windows (ISO1252) para o código depágina configurado no SQL Server.

OEM (default) Colunas do tipo char, varchar, ou text

são convertidas do código de página OEMpara o código de página configurado noSQL Server.

RAW Nenhuma conversão será feita.

cód_página Código de página (por exemplo, 850).

DATAFILETYPE [ = {'char' | 'native' | 'widechar' | 'widenative'}]

Formato no qual os dados serãoarmazenados no arquivo.

char (default) Copia os dados assumindo que o arquivoestá no formato texto (caractere).

native Copia os dados assumindo que o arquivoestá no formato nativo do SQL Server.Deve ter sido gerado com o utilitário BCP.

widechar Copia os dados assumindo que o arquivoestá no formato texto UNICODE.

widenative Copia os dados assumindo que o arquivoestá no formato UNICODE nativo. Deveter sido gerado com o aplicativo BCP.

FIELDTERMINATOR Caractere utilizado como terminador decampo (default=caractere \t).

FIRSTROW Número da primeira linha do arquivo a sercopiada (default=1).

FORMATFILE Especifica um path completo e o nome doarquivo de formato que descreve oconteúdo do arquivo de dados. Funcionade forma semelhante ao arquivo de formatocriado para o comando de BCP.

KEEPIDENTITY Especifica que os valores IDENTITYinseridos em um volume manterão seuvalor em vez de ter um novo valorIDENTITY atribuído a eles como parte doprocesso de inserção.

KEEPNULLS Especifica que os valores NULL reterãoseus valores NULL quando o volume forinserido.

KILOBYTES_PER_BATCH

Número de bytes a serem transferidos porvez.

LASTROW Número da última linha do arquivo a sercopiada (default=0, indicando a última linhano arquivo de dados).

Comandos

Page 20: Guia de Consulta Rapida - SQLServer e TransactSQL

19

MAXERRORS Número máximo de erros que podemocorrer antes da cópia serautomaticamente cancelada (default=10).

ORDER Especifica as colunas utilizadas para aclassificação (ASC ou DESC) do arquivode dados.

ROWS_PER_BATCH Número de linhas a serem copiadas porlote.

ROWTERMINATOR Especifica o caractere utilizado comoterminador de linha (default= \n).

TABLOCK Especifica que um bloqueio (lock) de tabelaserá utilizado até o fim da operação decópia.

CASE

Avalia uma série de condições e retorna a primeiracondição verdadeira.

Formato 1:

Comparação entre expressões para determinar oresultado.

CASE expressão_case

WHEN expressão_when THEN resultado

[...][ ELSE resultado ]END

Argumento Descrição

expressão_case Expressão a ser avaliada pelo comando CASE.

WHEN Especifica a expressão a ser comparada com aexpressão_case. Caso sejam iguais, seráretornado o resultado especificado após acláusula THEN.

THEN Especifica o resultado a ser retornado caso acláusula WHEN correspondente seja satisfeita.

ELSE Especifica o resultado a ser retornado casonenhuma das cláusulas WHEN seja satisfeita.

Formato 2:

Comparação utilizando condições para determinar oresultado.

CASEWHEN condição THEN resultado

[...][ ELSE resultado ]END

Comandos

Page 21: Guia de Consulta Rapida - SQLServer e TransactSQL

20

Argumento Descrição

WHEN condição Especifica uma condição. Se for verdadeira, entãoo resultado especificado pela cláusula seráretornado.

THEN Resultado a ser retornado caso a cláusula WHENcorrespondente seja satisfeita.

ELSE Resultado a ser retornado caso nenhuma dascláusulas WHEN seja satisfeita.

CHECKPOINT

Grava, em disco, as páginas do banco de dados correnteque foram alteradas em memória.

CHECKPOINT

CLOSE

Fecha um cursor aberto.

CLOSE { { [GLOBAL] nome_cursor } | variável_cursor }

Argumento Descrição

GLOBAL Identifica um cursor global.

nome_cursor Nome de um cursor a ser fechado.

variável_cursor Nome da variável do tipo cursor que contémo cursor a ser fechado.

COMMIT TRANSACTION

Indica que uma transação foi realizada com sucesso eque todo o trabalho deve ser salvo, bem como que oseventuais LOCKs obtidos pela transação devem serliberados.

COMMIT [ TRAN[SACTION] [transação]]

COMMIT WORK

Identifica o final de uma transação. Equivalente aocomando COMMIT TRANSACTION.

COMMIT [WORK]

CONTINUE

Reinicia um laço WHILE. Os comandos após a palavra-chave CONTINUE serão ignorados.

Comandos

Page 22: Guia de Consulta Rapida - SQLServer e TransactSQL

21

CREATE DATABASE

Cria um novo banco de dados e os arquivos usados paraarmazená-lo. Pode ser utilizado também para anexar aoservidor local um banco de dados criado previamenteem outro servidor, utilizando os arquivos originais oucópias dos mesmos.

CREATE DATABASE nome_bd

[ ON [PRIMARY][ filespec [,...] ][, filegroup [,...] ]][ LOG ON filespec [,...] ][ FOR LOAD | FOR ATTACH ]

filespec ::=( [ NAME = nome_lógico, ]FILENAME = 'nome_físico'

[, SIZE = tamanho][, MAXSIZE = { tamanho_max | UNLIMITED } ][, FILEGROWTH = incremento] ) [,...]

filegroup ::=

FILEGROUP filegroup filespec [,...]

Argumento Descrição

nome_bd Nome do novo banco de dados.

ON Especifica que todos os arquivos contendo osdados do banco de dados serão especificadosexplicitamente.

PRIMARY Especifica o primeiro arquivo que contém astabelas de sistema e outras informaçõesinternas do banco de dados. Se nãoespecificada, assumirá o primeiro arquivo dalista.

LOG ON Especifica os arquivos físicos do log detransações do banco de dados.

FOR LOAD Marca o banco de dados para utilização deDBO. Opção obsoleta, mantida paracompatibilidade retroativa.

FOR ATTACH Anexa um banco de dados ao servidor a partirde um conjunto de arquivos que compõem obanco de dados.

filespec

NAME Nome lógico do arquivo.

FILENAME Nome físico do arquivo.

Comandos

Page 23: Guia de Consulta Rapida - SQLServer e TransactSQL

22

SIZE Tamanho do arquivo. Os sufixos MB e KBpodem ser utilizados para especificarmegabytes ou kilobytes (default=1MB).

MAXSIZE Tamanho máximo que o arquivo pode atingir.A opção UNLIMITED especifica que o arquivopode aumentar até o disco ficar cheio.

FILEGROWTH Incremento de crescimento do arquivo. Ovalor pode ser especificado em MB, KB ou %(porcentagem do tamanho do arquivo nomomento em que o incremento ocorre).

CREATE DEFAULT

Cria um valor padrão (default), que poderá ser atribuídoa uma coluna quando nenhum valor for fornecido a essacoluna durante uma inserção.

CREATE DEFAULT nome_default

AS expressão_constante

Argumento Descrição

nome_default Nome do objeto default.

expressão_constante Expressão constante que contém o valordefault a ser atribuído a uma coluna.

CREATE INDEX

Cria um índice em uma tabela.

CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]INDEX nome_índice ON tabela (coluna [,...])[WITH[PAD_INDEX][[,] FILLFACTOR = fator_preenchimento][[,] IGNORE_DUP_KEY][[,] DROP_EXISTING][[,] STATISTICS_NORECOMPUTE]][ON filegroup]

Argumento Descrição

UNIQUE Cria um índice exclusivo (no qual não épossível duas linhas terem o mesmo valor deíndice).

CLUSTERED Cria um índice setorizado, que classificafisicamente o conteúdo da tabela na ordemda(s) coluna(s) do índice.

NONCLUSTERED Cria um índice não-setorizado, que não alteraa ordem das linhas na tabela.

nome_índice Nome do índice.

Comandos

Page 24: Guia de Consulta Rapida - SQLServer e TransactSQL

23

tabela Nome da tabela que contém a coluna ou ascolunas a serem indexadas.

coluna Coluna ou colunas às quais o índice se aplica.

PAD_INDEX Especifica o espaço a ser deixado livre emcada página (nodo) nos níveis intermediáriosdo índice. Usa a porcentagem especificadaem FILLFACTOR.

FILLFACTOR Porcentagem de preenchimento de cadapágina de índice durante a criação do índice.Se igual a 100, preenche totalmente cadapágina de índice; se 0, apenas as páginas deíndice de folha (leaf) serão preenchidas(default=0).

IGNORE_DUP_KEY Ignora as tentativas de inserção de valoresduplicados na coluna (ou colunas) indexada.

DROP_EXISTING Remove da tabela índices com o mesmonome.

STATISTICS_NORECOMPUTE

Não recalcula automaticamente informaçõesestatísticas desatualizadas.

ON filegroup Cria o índice no filegroup especificado.

CREATE PROCEDURE

Cria uma stored procedure (uma coleção gravada decomandos SQL).

CREATE PROC[EDURE] nomeproc [;número][ {@parâmetro tipo_dado} [VARYING] [= default][OUTPUT] ] [,...][WITH { RECOMPILE | ENCRYPTION| RECOMPILE, ENCRYPTION } ][FOR REPLICATION]AS comandos_sql [...]

Argumento Descrição

nomeproc Nome da nova stored procedure. Preceda onome com # para criar uma proceduretemporária local e preceda com ## para criaruma temporária global.

;número Número inteiro usado para agrupar proceduresde mesmo nome, para que sejam removidasde uma só vez pelo comando DROPPROCEDURE.

@parâmetro Parâmetro para a procedure. Um ou maisparâmetros podem ser declarados.Parâmetros são locais à procedure.

tipo_dado Tipo de dado do parâmetro.

Comandos

Page 25: Guia de Consulta Rapida - SQLServer e TransactSQL

24

VARYING Utilizado somente para parâmetros de retornodo tipo cursor. Permite que o resultado sejaconstruído dinamicamente dentro daprocedure e retornado como um cursor parao objeto que fez a chamada a essa procedure.

default Valor default do parâmetro.

OUTPUT Identifica um parâmetro de retorno.

RECOMPILE Ignora o plano de execução existente e geraoutro sempre que a procedure for executada.

ENCRYPTION Criptografa o texto de criação da procedureque fica na tabela syscomments.

FOR REPLICATION Especifica que as procedures criadas parareplicação não podem ser executadas noservidor assinante. Utilizado para criação deprocedures para filtros de replicação.

AS Especifica as ações que a procedure devetomar, que são os comandos SQL que serãocolocados logo após esse identificador.

comandos_sql Comandos da stored procedure.

CREATE RULE

Cria uma regra (rule). Uma regra define os valoresválidos para uma coluna ou tipo de dados. Uma regra évinculada a uma coluna ou tipo de dados através dastored procedure sp_bindefault.

CREATE RULE regra AS expressão_condição

Parâmetro Descrição

regra Nome da regra a ser criada.

expressão_condição Especifica as condições que definem a regra.Pode ser qualquer expressão válida em umasentença WHERE.

CREATE SCHEMA

Cria um esquema (schema). Um esquema contémdeclarações a para criação de tabelas, views e privilégiosde usuários.

CREATE SCHEMA AUTHORIZATION proprietário

[ <esquema> [...] ]

<esquema> ::={definição_tabela | definição_view | comando_grant}

Comandos

Page 26: Guia de Consulta Rapida - SQLServer e TransactSQL

25

Argumento Descrição

proprietário Identificação (ID) do proprietário do esquema.

definição_tabela Especifica o comando CREATE TABLE quecriará uma tabela no esquema.

definição_view Especifica o comando CREATE VIEW quecriará uma view para o esquema.

comando_grant Especifica um comando GRANT paraconceder permissões a um usuário ou grupode usuários.

CREATE STATISTICS

Cria um grupo de estatísticas referentes a uma tabela oua colunas específicas de uma tabela.

CREATE STATISTICS nome_estatística ON tabela (coluna [,...])[ WITH[ [ FULLSCAN| SAMPLE número PERCENT ] [,] ][ NORECOMPUTE] ]

Argumento Descrição

nome_estatística Nome do grupo de estatísticas a sercriado.

tabela Nome da tabela para a qual asinformações estatísticas estão sendocriadas.

coluna Nome da(s) coluna(s) ou do(s) índice(s)para o(s) qual(is) as informaçõesestatísticas estão sendo criadas.

FULLSCAN Efetua a varredura completa do índiceou da tabela ao acumular informaçõesestatísticas. O mesmo que SAMPLE100 PERCENT.

SAMPLE número PERCENT Percentual utilizado para calcular asestatísticas por amostragem. Apenasuma parte da tabela será lida.

NORECOMPUTE Não recalcula automaticamenteinformações estatísticas desatualizadas.

Comandos

Page 27: Guia de Consulta Rapida - SQLServer e TransactSQL

26

CREATE TABLE

Cria uma nova tabela.

CREATE TABLEtabela

(

{ definição_coluna | coluna AS expressão | constraint_tabela

} [,...])[ ON {filegroup | DEFAULT } ][ TEXTIMAGE_ON { filegroup | DEFAULT } ]

definição_coluna ::=coluna tipo_dados

[[ DEFAULT expressão_constante ]| [ IDENTITY [(valor_inicial, incremento )[NOT FOR REPLICATION] ] ]][ ROWGUIDCOL ] [ constraint_coluna ] [ ...]

constraint_coluna ::=[CONSTRAINT nome]{[ NULL | NOT NULL ]| [ { PRIMARY KEY | UNIQUE }[CLUSTERED | NONCLUSTERED][WITH FILLFACTOR = fator_preenchimento][ON {filegroup | DEFAULT} ]]]| [ [FOREIGN KEY]REFERENCES tabela_ref [(coluna_ref) ][NOT FOR REPLICATION]]| CHECK [NOT FOR REPLICATION] (expr_lógica)

}

constraint_tabela ::=[CONSTRAINT nome ]{[ { PRIMARY KEY | UNIQUE }[ CLUSTERED | NONCLUSTERED]{ ( coluna [,...] ) }[ WITH FILLFACTOR = fator_preenchimento][ON {filegroup | DEFAULT} ]]| FOREIGN KEY [(coluna [,...])]REFERENCES tabela_ref [(coluna_ref [,...])][ NOT FOR REPLICATION ]| CHECK [ NOT FOR REPLICATION ]}

Comandos

Page 28: Guia de Consulta Rapida - SQLServer e TransactSQL

27

Argumento Descrição

tabela Nome da tabela a ser criada. Podeincluir o nome do banco de dados e onome do proprietário.

coluna Nome da coluna da tabela.

AS expressão Expressão que define o valor de umacoluna calculada. Uma colunacalculada é uma coluna virtual que nãoestá fisicamente armazenada na tabelae contém resultados de expressõesconstantes ou que utilizam as colunasda própria tabela.

ON Especifica em qual filegroup a tabelaserá criada. Caso não seja especificadoserá utilizado o filegroup default.

TEXTIMAGE_ON Indica que colunas dos tipos de dadostext, ntext e image serão colocadasem um filegroup específico. Caso nãoseja especificado, serão colocadas nomesmo filegroup da tabela.

tipo_de_dados Indica o tipo de dado da coluna.

DEFAULT Especifica o valor atribuído à colunaquando ele não tiver sidoexplicitamente fornecido durante ainserção.

IDENTITY Identifica uma coluna com apropriedade de auto-incremento, ondeos valores são colocadosautomaticamente, seguindo o queestiver definido em valor_inicial eincremento. Somente uma coluna dotipo IDENTITY é permitida por tabela.

valor_inicial Valor que será colocado na primeiralinha a ser inserida na tabela.

incremento Incremento ao valor a ser atribuído acada linha subseqüente.

NOT FOR REPLICATION

Não executa a propriedade de auto-incremento quando a inserção dedados estiver sendo feita pelo processode replicação.

ROWGUIDCOL Indica que a nova coluna é umidentificador global da linha.

CONSTRAINT Indica o início da definição de umaconstraint PRIMARY KEY, FOREIGNKEY, CHECK ou DEFAULT.

NULL | NOT NULL Determina se valores NULL sãopermitidos ou não na coluna.

Comandos

Page 29: Guia de Consulta Rapida - SQLServer e TransactSQL

28

PRIMARY KEY Determina a chave primária da tabela,ou seja, os valores devem ser únicospara as colunas definidas nessaconstraint. Somente uma constraint

PRIMARY_KEY é permitida por tabela.

UNIQUE Determina que essa(s) coluna(s)deve(m) ter valores únicos.

CLUSTERED | NONCLUSTERED

Indica se a constraint PRIMARY KEYou UNIQUE será clusterizada ou não.Veja o comando CREATE INDEX paramais detalhes.

WITH FILLFACTOR Porcentagem de preenchimento decada página de índice durante a criaçãodo índice. Se igual a 100, preenchetotalmente cada página de índice; se0, apenas as páginas de índice defolha (leaf) serão preenchidas(default=0).

FOREIGN KEY...REFERENCES

Fornece integridade referencial entreas tabelas, ligando as chaves primáriasàs chaves estrangeiras.

tabela_ref Tabela à qual será feita referência pelachave estrangeira (Foreign key).

coluna_ref Coluna à qual será feita referênciapela chave estrangeira.

CHECK Semelhante às regras de validação(ver CREATE RULE). Esta opção servepara limitar os valores permitidos paraa coluna.

NOT FOR REPLICATION

Não executa a constraint CHECKquando a tabela estiver sendo alteradapelo processo de replicação.

expressão_lógica Expressão lógica utilizada na constraint

CHECK que retorna TRUE ou FALSE.

coluna Coluna ou colunas que são utilizadasna definição das constraints.

Comandos

Page 30: Guia de Consulta Rapida - SQLServer e TransactSQL

29

CREATE TRIGGER

Cria um trigger. Trigger é um tipo especial de storedprocedure que é executada automaticamente quandodados são adicionados, modificados ou excluídos dobanco de dados.

CREATE TRIGGER nome_trigger

ON tabela [WITH ENCRYPTION]{

{FOR { [DELETE] [,] [INSERT] [,] [UPDATE] }[WITH APPEND][NOT FOR REPLICATION]AS comando_sql [...]

}|{FOR { [INSERT] [,] [UPDATE] }

[WITH APPEND][NOT FOR REPLICATION]AS{ IF UPDATE (coluna)

[{AND | OR} UPDATE (coluna)] [...]| IF (COLUMNS_UPDATED() {operador_binário}

bitmask_atualizado){ operador_comparação } bitmask_coluna [...]

}comando_sql [ ...]}}

Argumento Descrição

tabela Nome da tabela para a qual o trigger éexecutado.

WITH ENCRYPTION Criptografa a definição do trigger natabela syscomments.

{ [DELETE] [,] [INSERT] [,] [UPDATE] } | { [INSERT] [,] [UPDATE]}

Tipos de operações que ativam otrigger. Pelo menos um tipo deve serespecificado.

WITH APPEND Indica que pode ser criado mais de umtrigger para o mesmo tipo de operação(INSERT, DELETE ou UPDATE) emuma tabela e que todos eles serãoexecutados seguindo a ordem em queforam criados.

NOT FOR REPLICATION Não executa o trigger quando aalteração da tabela estiver sendo feitapelo processo de replicação de dados.

Comandos

Page 31: Guia de Consulta Rapida - SQLServer e TransactSQL

30

AS comando_sql Identifica uma seqüência lógica decomandos SQL que representa asações que o trigger deve tomar. Existemduas tabelas que ficam disponíveisdurante a execução dos triggers e quesão de grande importância. São elas:deleted e inserted. Elas têmexatamente a mesma estrutura databela que sofreu o INSERT, DELETEou UPDATE e contêm as linhas novas(INSERTED) e antigas (DELETED)afetadas por esses comandos.

IF UPDATE(coluna) Testa se uma coluna foi alterada.

IF (COLUMNS_UPDATED())

Testa quais colunas foram inseridas e/ou alteradas.

Operador_bit_a_bit Operador bit a bit.

bitmask_atualizado Bitmask das colunas que foramalteradas.

operador_comparação Operador de comparação (=), (<), (>).

bitmask_coluna Bitmask das colunas que serãoverificadas.

CREATE VIEW

Cria uma view. View é uma tabela virtual que representauma maneira alternativa de ver dados em uma ou maistabelas.

CREATE VIEW nome_view [(coluna [,...])][WITH ENCRYPTION]AS comando_select

[WITH CHECK OPTION]

Argumento Descrição

nome_view Nome da view.

coluna Nome a ser usado para uma coluna emuma view.

WITH ENCRYPTION Criptografa o comando CREATE VIEWna tabela syscomments.

AS Especifica o comando SELECT quedefine a view. Não pode incluir ascláusulas ORDER BY, INTO,COMPUTE ou COMPUTE BY.

WITH CHECK OPTION Força os comandos de modificação dedados aplicados pela visualização autilizarem os critérios do comandoSELECT que define a view.

Comandos

Page 32: Guia de Consulta Rapida - SQLServer e TransactSQL

31

DBCC

O DBCC (Database Consistency Checker) verifica ecorrige as estruturas internas de um banco de dados. Éextremamente importante checar a consistência dosbancos de dados antes de fazer um DUMP DATABASE(Backup), pois bancos de dados corrompidos não podemser restaurados. Existem vários comandos DBCC parafazer a verificação completa no banco de dados, veja naspáginas 62 a 72.

DEALLOCATE

Remove uma referência de cursor.

DEALLOCATE { { [GLOBAL] nome_cursor } | @variável_cursor }

Argumento Descrição

GLOBAL Especifica que trata-se de um cursor global.

nome_cursor Nome do cursor.

variável_cursor Nome de uma variável cursor.

DECLARE

Declara variáveis locais. Utilize o comando SET paraatribuir valores às variáveis.

DECLARE{{ @variável_local tipo_dado } | { @variável_cursor

CURSOR}} [,...]

Argumento Descrição

@variável_local Nome da variável.

tipo_dado Tipo de dado da variável. Não pode ser dotipo text, ntext ou image.

@variável_cursor Nome da variável tipo cursor.

CURSOR Especifica que a variável é um cursor local.

DECLARE CURSOR

Define um cursor e suas propriedades.

DECLARE nome_cursor CURSOR[ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ][ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ][ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ][TYPE_WARNING] FOR comando_select

[FOR UPDATE [OF coluna [,...]]]

Comandos

Page 33: Guia de Consulta Rapida - SQLServer e TransactSQL

32

Argumento Descrição

LOCAL O cursor tem escopo local ao batch ouprocedure no qual está sendo declarado.

GLOBAL O cursor tem escopo global, permitindo queseja acessado de fora do batch ou procedureno qual está sendo declarado.

FORWARD_ONLY O cursor só poderá ser lido no sentido normal(da primeira à última linha) e só permite ocomando FETCH NEXT

SCROLL O cursor poderá ser lido em qualquer sentidoe os comandos FETCH [ NEXT | PRIOR |LAST | FIRST| ABOSOLUTE | RELATIVE]poderão ser utilizados.

STATIC O conteúdo do cursor é estático e não sealtera, mesmo que os dados das tabelas queserviram de base sejam alterados. Isso é feitoatravés da criação de uma tabela temporária,com o resultado do SELECT que define ocursor e, então, o cursor fica automaticamentebaseado nessa tabela tamporária.

KEYSET Quando o cursor é aberto (comando OPEN),é criada uma tabela no tempdb que contém aschaves das linhas que fazem parte do cursor.O conteúdo dessa tabela é fixo e ela é utilizadapelo cursor para fazer a leitura das linhas nastabelas-base. Dessa forma, linhas novasadicionadas às tabelas-base não serãoincluídas no cursor, ao passo que qualqueralteração nas linhas existentes será refletidaautomaticamente.

DYNAMIC Ao contrário de STATIC, todas asmodificações feitas nas tabelas que servemde base ao cursor serão refletidas no mesmo.

FAST_FORWARD O cursor será aberto com otimização deperformance e será READ ONLY.

READ_ONLY Impede que atualizações sejam feitas atravésdesse cursor.

SCROLL_LOCKS Garante que podem ser feitas atualizaçõesatravés do cursor. Para isso, o SQL Server fazos bloqueios (locks) nas linhas que estãosendo lidas pelo cursor.

OPTIMISTIC Ao contrário do SCROLL_LOCKS, não é feitobloqueio nas linhas lidas pelo cursor e, dessaforma, não se garante que possam ser feitasatualizações através do cursor, pois as linhaspodem estar completamente diferentes doque estavam quando foram lidas pelo cursor.

Comandos

Page 34: Guia de Consulta Rapida - SQLServer e TransactSQL

33

TYPE_WARNING Envia mensagem de alerta ao usuárioinformando que houve conversão dos tiposde dados no cursor.

comando_select Comando SELECT que define o cursor.

FOR UPDATE [OF coluna [,...]]]

Define a lista de colunas que podem seratualizadas através desse cursor. Caso alista não seja definida, todas as colunas serãoconsideradas atualizáveis, desde que o cursornão seja READ ONLY.

DELETE

Elimina linhas de uma tabela.

DELETE [ FROM ]{nome_tabela WITH ( opção [...] ) | nome_view

}[ FROM tabela_fonte [,...] ][ WHERE condição ][ OPTION ( opção [,...] ) ]

Cláusula WITH ::={INDEX(número_índice [,...] )| FASTFIRSTROW| HOLDLOCK| PAGLOCK| READCOMMITTED| REPEATABLEREAD| ROWLOCK| SERIALIZABLE| TABLOCK| TABLOCKX}

Cláusula OPTION ::={{ HASH | ORDER } GROUP| { CONCAT | HASH | MERGE } UNION| FAST número_linhas

| FORCE ORDER| MAXDOP| ROBUST PLAN| KEEP PLAN}

Comandos

Page 35: Guia de Consulta Rapida - SQLServer e TransactSQL

34

Argumento Descrição

tabela Nome da tabela da qual as linhas serãoremovidas.

WITH Instruções para o otimizador. Para maisdetalhes, veja a cláusula FROM docomando SELECT na página 52.

nome_view Nome da view.

FROM tabela_fonte Tabela(s) utilizada(s) para definir o critériodo conjunto de dados que será removidoda tabela. Para mais detalhes veja acláusula FROM do comando SELECT napágina 52.

WHERE Condições que devem ser satisfeitas paraformar o conjunto de dados a ser removido.Quando estiver removendo dados atravésde um cursor, utilize a cláusula CURRENTOF nome_cursor, que define a linha atualdo cursor.

OPTION Especifica as instruções que serãopassadas ao otimizador. Para maisdetalhes veja a cláusula OPTION docomando SELECT na página 55.

DENY

Proíbe o acesso a objetos ou a execução de comandosSQL.

Permissões para execução de comandos:

DENY { ALL | comando [,...] } TO conta [,...]

Permissões de objetos:

DENY{ALL [PRIVILEGES] | permissão [,...]}{[ (coluna [,...]) ] ON { tabela | view }| ON {tabela | view} [ (coluna [,...]) ]| ON {stored_procedure | extended_procedure} }TO conta [,...][CASCADE]

Argumento Descrição

ALL Especifica que todas as permissões aplicáveisestão sendo negadas.

comando Comando para o qual a permissão está sendonegada. Podem ser os seguintes: CREATEDATABASE, CREATE DEFAULT, CREATEPROCEDURE, CREATE RULE, CREATETABLE, CREATE VIEW, BACKUPDATABASE e BACKUP LOG.

Comandos

Page 36: Guia de Consulta Rapida - SQLServer e TransactSQL

35

TO Lista de usuários para os quais as permissõesserão negadas.

PRIVILEGES Palavra-chave opcional que pode ser incluídapara compatibilidade com SQL-92.

permissão Permissão que está sendo negada. Paratabelas ou views, podem ser SELECT,INSERT, DELETE, ou UPDATE; paraprocedures, EXECUTE.

coluna Coluna ou colunas a que você quer negaracesso.

tabela Nome da tabela na qual as permissões estãosendo negadas.

view Nome da view na qual as permissões estãosendo negadas.

stored_procedure Nome da procedure na qual as permissõesestão sendo negadas.

extended_procedure Nome da procedure extendida na qual aspermissões estão sendo negadas.

CASCADE Nega permissões a uma conta quepreviamente tenha recebido algumapermissão de usuário com o direito WITHGRANT OPTION.

DROP DATABASE

Remove bancos de dados do SQL Server.

DROP DATABASE nome_bd [,...]

Parâmetro Descrição

nome_bd Nome do banco de dados a ser removido.

DROP DEFAULT

Remove padrões (valores default) do banco de dadoscorrente. Utilize a procedure sp_help para ver a lista dedefaults existentes.

DROP DEFAULT nome_default [,...]

DROP INDEX

Remove índices do banco de dados corrente.

DROP INDEX 'tabela.índice' [,...]

Argumento Descrição

tabela Nome da tabela onde o índice foi criado.

índice Nome do(s) índice(s) a remover.

Comandos

Page 37: Guia de Consulta Rapida - SQLServer e TransactSQL

36

DROP PROCEDURE

Remove procedures do banco de dados corrente.

DROP PROCEDURE [owner.]procedure [,...]

DROP PROC [owner.]procedure [,...]

DROP RULE

Remove regras (rule) do banco de dados corrente.

DROP RULE regra [,...]

DROP STATISTICS

Elimina as informações estatísticas de uma ou maiscolunas de uma tabela no banco de dados corrente.

DROP STATISTICS tabela.nome_estatística[,...]

Argumento Descrição

tabela Nome da tabela.

nome_estatística Nome da estatística criada com o comandoCREATE STATISTICS.

DROP TABLE

Remove uma tabela e todos os seus dados além dosobjetos dependentes como índices, triggers e constraints.Qualquer view criada com base em uma tabela que tenhasido eliminada tem de ser explicitamente removida como comando DROP VIEW.

DROP TABLE tabela

DROP TRIGGER

Remove triggers do banco de dados corrente.

DROP TRIGGER trigger [,...]

DROP VIEW

Remove views do banco de dados corrente. Utilize aprocedure sp_help para ver a lista de views existentes.

DROP VIEW view [,...]

Comandos

Page 38: Guia de Consulta Rapida - SQLServer e TransactSQL

37

DUMP

Cria uma cópia backup de um banco de dados ou criauma cópia do arquivo de transações em uma forma quepoderá ser lida usando as instruções BACKUP ouLOAD.

EXECUTE

Executa uma procedure de sistema, uma procedure, umaprocedure estendida ou um comando SQL armazenadoem uma variável ou não.

Executar uma procedure:

[[EXEC[UTE]]{[@status_retorno =]{nome_procedure [;número ]}[[@parâmetro =] {valor | @variável [OUTPUT] | [DEFAULT]][,...][WITH RECOMPILE]

Executar um comando SQL em um string:

EXEC[UTE] ({@variável_string | [N]'string'} [+...])

Argumento Descrição

@status_retorno Variável que armazena o status retornadopela procedure.

nome_procedure Nome da procedure.

;número Versão da procedure.

@parâmetro Parâmetro que será passado para aprocedure.

valor Valor do parâmetro.

@variável Variável onde pode ser colocado o valordo parâmetro de retorno da procedure.

OUTPUT Especifica que a stored procedure deveretornar um parâmetro.

DEFAULT Informa o valor default do parâmetro daprocedure.

WITH RECOMPILE Recompila a procedure antes de executá-la.

@variável_string Variável local que contém um comandoSQL.

[N]'string' String que contém o comando SQL a serexecutado.

Comandos

Page 39: Guia de Consulta Rapida - SQLServer e TransactSQL

38

FETCH

Faz a leitura de linhas de um cursor que tenha sidopreviamente declarado (DECLARE CURSOR) e aberto(OPEN).

FETCH[ [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE n |RELATIVE n ] FROM ]{{ [GLOBAL] nome_cursor} | @variável_cursor } [INTO@variável; [,...]]

Argumento Descrição

NEXT Retorna a linha imediatamente seguinte à linhacorrente.

PRIOR Retorna a linha imediatamente anterior à linhacorrente.

FIRST Retorna a primeira linha do cursor.

LAST Retorna a última linha do cursor.

ABSOLUTE n Retorna a linha n do cursor.

RELATIVE n Retorna a linha que está 'n' posições à frente dalinha corrente.

GLOBAL Especifica que nome_cursor refere-se a um cursorglobal.

nome_cursor Nome do cursor.

@variável_cursor Nome da variável do tipo CURSOR.

INTO O comando fetch vai trazer uma linha inteiradefinida pelo comando SELECT no qual o cursorestá baseado. A cláusula INTO faz com que oconteúdo das colunas dessa linha que foi lidapelo FETCH seja colocado em variáveis locais.As variáveis locais devem ter tipos de dadoscompatíveis com as colunas que estão sendolidas.

GOTO

Desvia o fluxo de execução para o comando identificadopelo label.

Definição do label:

label:

Altera o fluxo de execução:

GOTO label

Parâmetro Descrição

label Define o ponto para onde o processamento serádesviado.

Comandos

Page 40: Guia de Consulta Rapida - SQLServer e TransactSQL

39

GRANT

Define as permissões de acesso ou execução que umusuário ou grupo de usuários pode ter em relação aosobjetos e comandos do banco de dados.

Permissões de comandos:

GRANT { ALL | comando [,...] }TO usuário [,...]

Permissões de objetos:

GRANT{ ALL [PRIVILEGES] | permissão [,...] }{[ (coluna [,...]) ] ON {tabela | view}| ON { tabela | view } [ (coluna [,...]) ]| ON {stored_procedure | extended_procedure}}TO usuário [,...][ WITH GRANT OPTION ][ AS {grupo | papel } ]

Argumento Descrição

ALL Especifica que todas as permissõesaplicáveis estão sendo concedidas.

comando Comando que o usuário poderá executar.Podem ser os seguintes: CREATEDATABASE, CREATE DEFAULT,CREATE PROCEDURE, CREATE RULE,CREATE TABLE, CREATE VIEW,BACKUP DATABASE e BACKUP LOG.

TO Lista de usuários para os quais aspermissões serão concedidas.

PRIVILEGES Opcional. Utilizado para ficar emconformidade com as definições SQL-92.

permissão Permissão ou permissões a serematribuídas. Quando uma permissão deobjeto estiver sendo configurada, serápreciso especificar seu tipo: SELECT,INSERT, DELETE, ou UPDATE paratabelas ou views, ou ainda EXECUTEpara procedures.

coluna Nome da coluna.

tabela Nome da tabela.

view Nome da view.

stored_procedure Nome da procedure.

extended_procedure Nome da procedure estendida.

Comandos

Page 41: Guia de Consulta Rapida - SQLServer e TransactSQL

40

WITH GRANT OPTION Permite ao usuário repassar os direitosque acaba de receber para outros usuários.

AS {grupo | papel} Especifica o grupo ou papel utilizado.Necessário quando existem diversospapéis ou grupos do Windows NT compermissões contraditórias.

IF...ELSE

Comando para determinar blocos de código que serãoexecutados quando determinadas condições foremverdadeiras ou falsas.

IF condição

{comando_sql | bloco_comandos}[ELSE{comando_sql | bloco_comandos}]

Parâmetro Descrição

condição Uma expressão que retorna True ou False. Podeconter um comando SELECT, que deve estar entreparênteses.

comando_sql | bloco_comandos

Comandos SQL que devem ser executados. Casoseja um bloco de comandos, estes devem estarentre BEGIN e END.

INSERT

Adiciona uma nova linha em uma tabela ou em umaview.

INSERT [INTO]{ tabela WITH (opção [...]) | view }{[ (colunas) ]{ VALUES ( { DEFAULT | NULL | expressão } [,...] )| comando_select | comando_execute }}| DEFAULT VALUES

Cláusula WITH ::={INDEX(valor_índice [,...] )| FASTFIRSTROW| HOLDLOCK| PAGLOCK| READCOMMITTED| REPEATABLEREAD| ROWLOCK| SERIALIZABLE| TABLOCK| TABLOCKX}

Comandos

Page 42: Guia de Consulta Rapida - SQLServer e TransactSQL

41

Argumento Descrição

[INTO] tabela Especifica o nome da tabela. A palavra-chave INTO é opcional.

WITH Especifica as opções de otimizaçãoque serão passadas ao otimizador,desabilitando a otimização automática.Para a descrição dessas opções veja aa cláusula FROM do comando SELECTna página 52.

view Nome da view.

colunas Nomes das colunas, separados porvírgula, onde os dados serão inseridos.

VALUES Especifica a lista de valores a sereminseridos.

DEFAULT Força o SQL Server a inserir o valorpadrão (default) definido para a coluna.

expressão Constante ou variável, ou ainda umaexpressão, que resulte em um valorconstante.

comando_select Comando SELECT que retorna linhasde dados que serão inseridas na tabela.As colunas do SELECT devem sercompatíveis (posicão e tipo de dados)com as colunas da tabela onde aslinhas estiverem sendo inseridas.

comando_execute Qualquer instrução EXECUTE válidaque retorne dados com as instruçõesSELECT ou READTEXT.

DEFAULT VALUES Força a nova linha a conter os valorespadrão definidos para cada coluna.

KILL

Encerra um processo (conexão) do usuário.

KILL {spid}

Argumento Descrição

spid Número do processo do usuário. Para saber osnúmeros dos processos, execute a proceduresp_who.

LOAD

Carrega uma cópia de backup. Comando obsoleto,mantido apenas para compatibilidade retroativa.Recomenda-se utilizar o comando RESTORE.

Comandos

Page 43: Guia de Consulta Rapida - SQLServer e TransactSQL

42

OPEN

Abre um cursor de servidor Transact-SQL e preenche ocursor executando o comando Transact-SQLespecificado no comando DECLARE CURSOR ouSET variável_cursor.

OPEN { { [ GLOBAL ] nome_cursor } | variável_cursor }

PRINT

Exibe uma mensagem definida pelo usuário.

PRINT 'texto' | @variável_local | @@funcão | expressão

Argumento Descrição

texto Qualquer texto que se queira colocar entre asaspas.

@variável_local Variável que contém a mensagem.

@@função Nome de uma função que retorna um string.

expressão Expressão que retorna um string.

RAISERROR

Retorna uma mensagem definida pelo usuário e configuraum flag de sistema para registrar a ocorrência de umerro.

RAISERROR ( {id_mens | mensagem } {, gravidade, state }[, argumento [,...] ] )[ WITH opção [,...] ]

Argumento Descrição

id_mens Mensagem definida pelo usuário que estáarmazenada na tabela master..sysmessages

mensagem Mensagem que pode ser formatada de formasimilar à função printf da linguagem C.

gravidade Nível de gravidade associado à mensagem.

estado Valor arbitrário que pode variar de 1 a 127.

argumentos Parâmetros que serão substituídos pelos flagsque foram colocados em msg_str.

WITH Especifica uma opção adicional que pode ter osseguintes valores:

LOG Cria uma mensagem no log do SQL Server e nolog de aplicações do Windows NT (o qual podeser visto com Event Viewer).

NOWAIT Envia a mensagem imediatamente.

SETERROR Altera o valor da variável global @@ERRORpara id_mens ou 50000.

Comandos

Page 44: Guia de Consulta Rapida - SQLServer e TransactSQL

43

READTEXT

Lê valores text, ntext, ou image de uma coluna text,ntext, ou image.

READTEXT {tabela.coluna texto_ptr offset tamanho}[HOLDLOCK]

Argumento Descrição

tabela.coluna Nome da tabela e coluna no formato(tabela.coluna).

text_ptr Ponteiro do texto. Deve ser do tipo binary(16).

offset Número de bytes que devem ser ignorados antesda leitura dos dados propriamente ditos.

tamanho Número de bytes (com tipos de dados text ouimage) ou caracteres (com o tipo de dado ntext)de dados a serem lidos. Se o tamanho for 0, 4Kbytes de dados serão lidos.

HOLDLOCK Bloqueia para leitura o valor de texto até o final datransação.

RECONFIGURE

Atualiza o valor atualmente configurado (colunaconfig_value do conjunto de resultados sp_configure)de uma opção de configuração alterada com a proceduredo sistema sp_configure. Somente o administrador dobanco de dados pode executar este comando.

RECONFIGURE [ WITH OVERRIDE ]

Argumento Descrição

RECONFIGURE Especifica que, se o ajuste de configuraçãonão exigir uma parada e reinicialização doservidor, o valor atualmente em execuçãodeve ser atualizado.

WITH OVERRIDE Força a reconfiguração para um valorespecífico, mesmo que este esteja fora dafaixa de valores válidos para aconfiguração que foi alterada.

Comandos

Page 45: Guia de Consulta Rapida - SQLServer e TransactSQL

44

RESTORE

Restaura um log e um banco de dados, arquivo(s) debanco(s) de dados ou log.

Restaura um banco de dados inteiro:

RESTORE DATABASE nome_bd

[ FROM disp_backup [,...] ][ WITH[ DBO_ONLY ][ [,] FILE = num_arq ][ [,] MEDIANAME = tipo_mídia ][ [,] MOVE 'nome_logico_arq' TO 'nome_arq_so' ][,...][ [,] {NORECOVERY | RECOVERY | STANDBY = arq_rec}][ [,] {NOUNLOAD | UNLOAD} ][ [,] REPLACE ][ [,] RESTART ][ [,] STATS [= porcentagem] ]]

Restaura arquivos ou grupos de arquivos:

RESTORE DATABASE nome_bd

{ FILE = nome | FILEGROUP = nome } [,...][ FROM disp_backup [,...] ][ WITH[ DBO_ONLY][ [,] FILE = num_arq

[ [,] MEDIANAME = tipo_midia ][ [,] NORECOVERY][ [,] {NOUNLOAD | UNLOAD} ][ [,] REPLACE][ [,] RESTART][ [,] STATS [= porcentagem] ]]

Restaura um log de transações:

RESTORE LOG nome_bd

[ FROM disp_backup [,...] ][ WITH[ DBO_ONLY ][ [,] FILE = num_arq

[ [,] MEDIANAME = tipo_midia ][[,] {NORECOVERY | RECOVERY | STANDBY = arq_rec}][ [,] {NOUNLOAD | UNLOAD}][ [,] RESTART][ [,] STATS [= porcentagem ] ][ [,] STOPAT = data_hora ]]

Comandos

Page 46: Guia de Consulta Rapida - SQLServer e TransactSQL

45

Argumento Descrição

DATABASE | LOG Indica que deve ser restaurado um backupcompleto (DATABASE) ou somente dolog de transações (LOG).

nome_bd Nome do banco de dados. Pode estarcontido em uma variável local.

FROM Especifica os dispositivos de backup apartir dos quais será restaurado o backup.

disp_backup Dispositivo de backup permanente outemporário para utilizar no processo derestauração do banco de dados.

DBO_ONLY Restringe o acesso ao banco de dadosrecentemente restaurado somente aoproprietário do banco de dados (DBO).

FILE Identifica o conjunto de backups a serrestaurado.

MEDIANAME Especifica o nome da mídia para todo oconjunto de backups.

MOVE Especifica que o nome_lógico dado deveser movido para nome_físico.

NORECOVERY Instrui a operação de restauração a nãoretroceder qualquer transação ainda nãosubmetida.

RECOVERY Indica que a restauração deve ser revertida(roll back) em quaisquer transações nãorealizadas e que devem trazer o banco dedados para um estado consistente.

STANDBY Especifica um arquivo onde serãocolocadas as informações para se desfazera restauração atual.

NOUNLOAD Não ejeta automaticamente a fita dodispositivo de fita ao término da execuçãodo comando.

UNLOAD Retrocede e ejeta automaticamente a fitado dispositivo de fita ao término daexecução do comando (opção default).

REPLACE Indica que a restauração deve substituirqualquer banco de dados com o mesmonome que atualmente exista em seuservidor.

RESTART Reinicia seu backup a partir de onde parouna útlima vez.

STATS Indica que você gostaria que um statusinformasse o progresso (em precentual)da operação de restauração.

FILE Nome dos arquivos a serem utilizadospara restauração.

Comandos

Page 47: Guia de Consulta Rapida - SQLServer e TransactSQL

46

FILEGROUP Nome dos grupos de arquivos (filegroups)a serem utilizados para restauração.

STOPAT Indica que o banco de dados deve serrestaurado para o estado em que seencontrava em uma data/hora específica.

RESTORE FILELISTONLY

Retorna uma lista de backups do banco de dados earquivos de log armazenados no dispositivo especificado.

RESTORE FILELISTONLYFROM disp_backup

[WITH [FILE = número] [ [, ] {NOUNLOAD | UNLOAD} ] ]

Argumento Descrição

disp_backup Especifica o dispositivo de backup (permanenteou temporário) a ser utilizado.

FILE Especifica qual backup no dispositivo de backupdeve ser examinado.

NOUNLOAD Não ejeta automaticamente a fita do dispositivode fita ao término da execução do comando.

UNLOAD Retrocede e ejeta automaticamente a fita dodispositivo de fita ao término da execução docomando (default).

RESTORE HEADERONLY

Restaura todas as informações dos cabeçalhos (header)de todos os conjuntos de backups em um determinadodispositivo de backup.

RESTORE HEADERONLY FROM disp_backup

[WITH {NOUNLOAD | UNLOAD}]

Argumento Descrição

disp_backup Especifica o dispositivo de backup (permanenteou temporário) a ser utilizado.

NOUNLOAD Não ejeta automaticamente a fita do dispositivode fita ao término da execução do comando.

UNLOAD Retrocede e ejeta automaticamente a fita dodispositivo de fita ao término da execução docomando (opção default).

RESTORE LABELONLY

Retorna informações sobre a mídia de backupidentificada no dispositivo de backup especificado.

RESTORE LABELONLYFROM disp_backup

[WITH {NOUNLOAD | UNLOAD}]

Comandos

Page 48: Guia de Consulta Rapida - SQLServer e TransactSQL

47

Argumento Descrição

disp_backup Especifica o dispositivo de backup (permanenteou temporário) a ser utilizado.

NOUNLOAD Não ejeta automaticamente a fita do dispositivode fita ao término da execução do comando.

UNLOAD Retrocede e ejeta automaticamente a fita dodispositivo de fita ao término da execução docomando (opção default).

RESTORE VERIFYONLY

Verifica a integridade dos backups contidos nodispositivo de backup. Retorna a informação se o backuppode ou não ser restaurado.

RESTORE VERIFYONLYFROM disp_backup [,...][WITH [FILE = número ][[,] {NOUNLOAD | UNLOAD}][[,] LOADHISTORY] ]

Argumento Descrição

disp_backup Especifica o dispositivo de backup (permanenteou temporário) a ser utilizado.

FILE Especifica qual backup no dispositivo de backupdeve ser examinado.

NOUNLOAD Não ejeta automaticamente a fita do dispositivode fita ao término da execução do comando.

UNLOAD Retrocede e ejeta automaticamente a fita dodispositivo de fita ao término da execução docomando (opção default).

LOADHISTORY Adiciona as informações sobre o backup àstabelas de backup no banco de dados msdb.

RETURN

Sai incondicionalmente de uma consulta (query) ouprocedure. Os comandos que seguem RETURN não sãoexecutados.

RETURN ( [expr_inteira] )

Parâmetro Significado

expr_inteira Valor inteiro a ser retornado como status de execuçãode uma procedure.

Comandos

Page 49: Guia de Consulta Rapida - SQLServer e TransactSQL

48

REVOKE

Remove uma permissão previamente concedida(GRANT) ou negada (DENY), de um usuário no bancode dados corrente.

Permissões de comandos:

REVOKE { ALL | comando [,...] }FROM usuário [,...]

Permissões de objetos:

REVOKE [GRANT OPTION FOR]{ ALL [PRIVILEGES] | permissão[,...] }{[ (coluna[,...])] ON {tabela | view}| ON {tabela | view}[(coluna[,...]) ]| {stored_procedure | extended_procedure }}FROM conta [,...][CASCADE][AS {grupo | papel}]

Argumento Descrição

ALL Especifica que todas as permissões aplicáveisestão sendo removidas.

comando Comando para o qual a permissão está sendorevogada. Podem ser os seguintes: CREATEDATABASE, CREATE DEFAULT, CREATEPROCEDURE, CREATE RULE, CREATETABLE, CREATE VIEW, BACKUPDATABASE e BACKUP LOG

FROM Nome do usuário de banco de dados, papelde banco de dados, usuário ou grupo doWindows NT para o qual a permissão estásendo revogada.

GRANT OPTION FOR Remove a opção de repassar as permissõespara outros usuários.

PRIVILEGES Palavra-chave opcional que pode incluídapara compatibilidade com o SQL-92.

permissão Permissão de objeto que está sendo revogada:SELECT, INSERT, DELETE, UPDATE ouREFERENCES, ou EXECUTE paraprocedures.

coluna Nome da coluna cujas permissões devem serrevogadas.

tabela Nome da tabela no banco de dados correntecujas permissões devem ser revogadas.

view Nome da view no banco de dados correntecujas permissões devem ser revogadas.

Comandos

Page 50: Guia de Consulta Rapida - SQLServer e TransactSQL

49

stored_procedure Nome da stored procedure no banco de dadoscorrente cujas permissões devem serrevogadas.

extended_procedure Nome da stored procedure extended no bancode dados corrente cujas permissões devemser revogadas.

FROM Lista de contas dos usuários.

CASCADE Revoga permissões que foram concedidaspor um usuário que previamente recebeu aconcessão WITH GRAND OPTION.

AS {grupo | papel} Especifica o grupo ou papel utilizado.Necessário quando existem diversos papéisou grupos do Windows NT com permissõescontraditórias.

ROLLBACK TRANSACTION

Cancela uma transação.

ROLLBACK [ TRAN[SACTION ] [ nome ]

ROLLBACK WORK

Cancela uma transação. Similar a ROLLBACKTRANSACTION, exceto que esta aceita um nome detransação.

ROLLBACK [WORK]

SAVE TRANSACTION

Cria um ponto de salvamento dentro de uma transação.

SAVE TRAN[SACTION] nome

SELECT {@variável_local = expr} [,...]

Comando utilizado para atribuição de valores a variáveislocais. Isso também pode ser feito com o comando SET@variável_local = expr.

SELECT

Obtém linhas de um banco de dados e permite a seleçãode uma ou mais linhas ou colunas de uma ou mais tabelase/ou views.

Sintaxe básica:

SELECT colunas

FROM tabela [,...][WHERE condição][GROUP BY lista_colunas_grupo][HAVING condição][ORDER BY lista_colunas_ordem [ASC | DESC] ]

Comandos

Page 51: Guia de Consulta Rapida - SQLServer e TransactSQL

50

Sintaxe completa:

SELECT [ALL | DISTINCT] [TOP n] [PERCENT] [WITH TIES]]coluna [,...][ INTO nova_tabela ][ FROM tabela [,...] ][ WHERE condição ][ GROUP BY [ALL] expr_grupo [,...][ WITH { CUBE | ROLLUP } ] ][ HAVING condição ][ ORDER BY coluna [ { ASC | DESC } ] [,...] ][ COMPUTE função_agregada(expr) } [,...] [BY expr [,...] ][ FOR BROWSE ][OPTION (opção_otimização [,...]) ]

Argumento Descrição

ALL Linhas duplicadas podem aparecer noresultado.

DISTINCT Linhas duplicadas devem ser removidas antesdas linhas serem retornadas.

TOP n [PERCENT] Retorna somente as primeiras n linhas. CasoPERCENT seja especificado, somente n%das linhas da tabela serão retornadas.

WITH TIES Valores repetidos das colunas indicadas nacláusula ORDER BY serão mostrados.

colunas Colunas que serão o resultado da query. Osnomes das colunas devem estar separadospor vírgulas. O caractere * indica que todas ascolunas de todas as tabelas indicadas nacláusula FROM serão retornadas. Quandoessa coluna tiver o mesmo nome em mais deuma tabela será preciso indicar o nome databela (tabela.coluna).

INTO Cria uma nova tabela tendo como conteúdoas linhas resultantes da consulta.

FROM Especifica as tabelas de onde os dados serãoretornados. Para mais detalhes veja a cláusulaFROM na página 52.

WHERE Restringe os registros a serem retornadospela consulta àqueles que satisfaçam acondição especificada.

GROUP BY Agrupa dados de resumo que atendam aoscritérios da cláusula WHERE a seremretornados como linhas únicas.

ALL Inclui todos os grupos no resultado.

expr_grupo Colunas ou expressões que servirão comobase para o agrupamento dos resultados.

Comandos

Page 52: Guia de Consulta Rapida - SQLServer e TransactSQL

51

CUBE Adiciona linhas de resumo ao resultado paracada combinação possível de grupo esubgrupo.

ROLLUP Serão adicionadas aos resultados linhas quesumarizem os valores de cada grupo paracada conjunto de funções agregadasutilizadas.

HAVING Especifica uma condição de pesquisa paraum grupo ou uma função agregada.Normalmente é utilizada com a cláusulaGROUP BY. Quando GROUP BY não forusada, HAVING comportar-se-á como acláusula WHERE.

ORDER BY Especifica o tipo de ordenação do conjuntode resultados.

expressão Pode ser nomes de colunas ou operaçõesfeitas em colunas, como, por exemplo,substring (para tipos de dados char, varchar),datepart (para tipos de dados datetime,smalldatetime) e floor (para tipos de dadosnuméricos), entre outras tantas expressõespossíveis.

ASC Especifica que os valores na colunaespecificada deverão ser ordenados emordem ascendente; do menor valor para omaior valor.

DESC Especifica que os valores na colunaespecificada deverão ser ordenados emordem descendente; do maior valor para omenor valor.

COMPUTE Gera totais que aparecem como colunas desumário adicionais no conjunto de resultados.Com a opção BY, gera quebras e subtotais noconjunto de resultados.

função_agregada Nome da função agregada a ser executada.Veja Funções de Agregação na página 81.

expr Pode ser nome de coluna ou operações feitassobre as colunas.

BY expr Gera quebras e subtotais cada vez que umnovo grupo for criado em relação à expressãoindicada.

FOR BROWSE Indica que podem ser feitas atualizações poraplicações que utilizam a DB-Library. Paraisso, a tabela deve ter uma coluna do tipotimestamp e uma chave única.

Comandos

Page 53: Guia de Consulta Rapida - SQLServer e TransactSQL

52

Cláusula FROM

Especifica as tabelas de onde os dados serão retornados.

[ FROM {tabela_fonte} [,...] ]

tabela_fonte ::=nome_tabela [ [AS] apelido_tabela ] [ WITH ( opção [,...]) ]| nome_view [ [AS] apelido_tabela ]| função_rowset [ [AS] apelido_tabela ]| tabela_derivada [AS] apelido_tabela [ (apelido_coluna [,...] )]| joined_table

tabela_join ::=tabela tipo_join tabela ON condição

| tabela CROSS JOIN tabela

| tabela_join

tipo_join ::=[ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ][ instruções_otimizador ]JOIN

Cláusula WITH ::={ INDEX (número_índice [,...])| FASTFIRSTROW| HOLDLOCK| NOLOCK| PAGLOCK| READCOMMITTED| READPAST| READUNCOMMITTED| REPEATABLEREAD| ROWLOCK| SERIALIZABLE| TABLOCK| TABLOCKX| UPDLOCK}

Argumento Descrição

tabela_fonte Indica as tabelas, views e tabelasderivadas para o comando SELECT.

nome_tabela [ [AS] apelido_tabela ]

Nome da tabela e apelido(opcional).

nome_view [ [AS] apelido_tabela ]

Nome da view e apelido(opcional).

função_rowset [ [AS] apelido_tabela ]

Nome da função rowset (utilizada paratabelas em servidores remotos).

Comandos

Page 54: Guia de Consulta Rapida - SQLServer e TransactSQL

53

WITH Indica para o otimizador as instruções queserão utilizadas na execução da query,porém essas instruções serão utilizadassomente nas tabelas que estiveremindicadas.

INDEX Força o otimizador a utilizar o índiceindicado.

FASTFIRSTROW Força a otimização da query a trazerrapidamente a primeira linha do resultadoe depois continuar a execuçãonormalmente.

HOLDLOCK Força o otimizador a fazer bloqueio (lock),do tipo SHARED nas páginas lidas, porémlibera-o somente ao final da execução daquery. Normalmente, os locks sãoliberados quando as páginas bloqueadasnão são mais necessárias à query.

NOLOCK Força o otimizador a fazer a leitura detodos os dados necessários à query,independente de estarem bloqueados ounão, mesmo que estejam sendo alteradospor outras transações. Dessa forma, aquery é executada sem esperar o términoda transação que está bloqueando aslinhas em questão; por outro lado, corre-se o risco de o resultado não ser verdadeiro,pois as transações pendentes podem nãoser efetivadas.

PAGLOCK Força o otimizador a fazer bloqueios (lock)com abrangência de página em vez databela inteira. Isso permite que maisusuários tenham acesso aos dados databela, porém resulta em perda dedesempenho.

READCOMMITTED Força o otimizador a fazer bloqueio (lock)do tipo SHARED nas páginas que estãosendo utilizadas, permitindo que asmesmas sejam alteradas. No entanto, asalterações feitas durante a execução daquery não aparecerão no resultado damesma.

READPAST Força o otimizador a não ler linhas queestejam sendo alteradas por outratransação. Dessa forma, a query éexecutada sem esperar o término datransação que está bloqueando a linha emquestão, mesmo comprometendo oresultado final da query.

READUNCOMMITTED

ver NOLOCK acima.

Comandos

Page 55: Guia de Consulta Rapida - SQLServer e TransactSQL

54

REPEATABLEREAD Força o otimizador a fazer o bloqueio(lock) em todas as páginas utilizadas pelaquery, não permitindo alterações nasmesmas. No entanto, se novas linhasforem inseridas, elas farão parte doresultado, pois são feitas várias leituraslógicas até chegar-se ao resultado final.

ROWLOCK Força o otimizador a fazer o bloqueio(lock) de linha (row level lock) em vez debloquear uma página interia.

SERIALIZABLE ver HOLDLOCK acima.

TABLOCK Força o otimizador a fazer um bloqueio(lock) do tipo SHARED na tabela inteiraaté o término da execução da query.

TABLOCKX Força o otimizador a fazer um bloqueio(lock) do tipo EXCLUSIVE na tabela inteiraaté o término da execução da query. Issofaz com que ninguém consiga efetuaralterações nem consultas nessa tabelaenquanto o lock estiver ativo.

UPDLOCK Força o otimizador a fazer um bloqueio(lock) do tipo UPDATE nas páginas lidasenquanto a query estiver sendo executada.Isso faz com que ninguém consiga efetuarconsultas ou alterações nessas páginasou na tabela inteira.

tabela_derivada [ [AS] apelido_tabela ]

Resultado de um comando select, quepode ser colocado como uma tabeladerivada.

apelido_coluna Apelido da coluna.

tabela_join Tabela que se relaciona com outra tabelaindicada na cláusula FROM, de forma quesomente as linhas onde as chaves deambas são correspondentes serãoretornadas.

tipo_join Tipo de Join.

INNER Todas as linhas onde as chaves sãocorrespondentes serão retornadas(default).

LEFT [OUTER] Todas as linhas da tabela à esquerdaserão retornadas. Aquelas que nãoencontrarem suas correspondentes natabela à direita terão como resultado ovalor NULL.

RIGHT [OUTER] Todas as linhas da tabela à direita serãoretornadas. Aquelas que não encontrarem suascorrespondentes na tabela à esquerda terãocomo resultado o valor NULL.

Comandos

Page 56: Guia de Consulta Rapida - SQLServer e TransactSQL

55

FULL [OUTER] Serão retornadas as colunas que nãoencontrarem suas correspondentes àesquerda ou à direita, porém com valorNULL.

JOIN Indica que as tabelas ou views especificadasterão uma operação de Join, que significa umarelação entre elas, buscando como resultado aschaves correspondentes.

ON condição Condição em que a operação de Join se baseia.

Cláusula UNION

Combina o resultado de duas ou mais consultas em umúnico conjunto de resultados, consistindo de todas aslinhas pertencentes a todas as consultas da união.

{ especificação_query | ( expressão_query ) }UNION [ALL]especificação_query | ( expressão_query )[UNION [ALL] especificação_query | ( expressão_query )[...] ]

Argumento Descrição

especificação_query | ( expressão_query )

Definição completa de uma query; ou seja,comando SELECT contendo a lista de colunas econdições.

UNION Indica a união dos resultados de duas ou maisqueries. Para isso, a quantidade de colunas e ostipos de dados devem ser correspondentes.

ALL Indica que linhas duplicadas serão mostradas.

Cláusula OPTION

Indica que as instruções para o otimizador serão válidaspor toda a query.

OPTION (instrução [,...])

Instrução ::={ { HASH | ORDER } GROUP| { CONCAT | HASH | MERGE } UNION| { LOOP | MERGE | HASH } JOIN| FAST número_linhas

| FORCE ORDER| MAXDOP número

| ROBUST PLAN| KEEP PLAN }

Comandos

Page 57: Guia de Consulta Rapida - SQLServer e TransactSQL

56

Comandos

Argumento Descrição

GROUP Especifica que as agregações descritas nascláusulas GROUP BY ou COMPUTE da querydevem usar hashing (HASH) ou ordenação(ORDER).

UNION Operações UNION são feitas utilizando merge(MERGE), hash (HASH) ou concatenação(CONCAT).

JOIN Todas operações de join utilizam loop (LOOP),merge (MERGE) ou hash (HASH).

FAST A query é executada de forma otimizada atétrazer as primeiras 'n' linhas e depois continua aexecução normal até o final.

FORCE ORDER Especifica que a “join order” indicada pela sintaxeda consulta será preservada durante a otimizaçãoda consulta.

MAXDOP Sobrepõe a opção de configuração max degreeof parallelism (de sp_configure) somente para aconsulta especificada nesta opção.

ROBUST PLAN Força o otimizador a tentar um plano para atingiro tamanho máximo potencial da linha emdetrimento do desempenho.

KEEP PLAN Força o otimizador a não fazer a recompilação doplano de execução quando ele calcular quedeveria.

SET

Atribui um valor a uma variável local definida pelocomando DECLARE.

SET @variável_local = expressão

SET

Comandos SET definem opções para a sessão correntedo usuário. Para mais informações sobre comandosSET veja as páginas 73 a 80.

SETUSER

Permite que um usuário com o papel sysadmin possa sepassar por outro usuário. Instrução obsoleta, mantidaapenas para compatibilidade retroativa.

SETUSER [ 'usuário' [ WITH NORESET ] ]

Page 58: Guia de Consulta Rapida - SQLServer e TransactSQL

57

Comandos

Argumento Descrição

usuário Nome da conta do usuário pelo qual o Sysadminquer se passar.

WITH NORESET Especifica quais instruções SETUSERsubseqüentes (sem o nome do usuárioespecificado) não reinicializarão o administradordo sistema ou o proprietário do banco de dados.

SHUTDOWN

Interrompe a execução do SQL Server. Somente oadministrador do sistema pode executar este comando.

SHUTDOWN [ WITH NOWAIT ]

Parâmetro Descrição

WITH NOWAIT Interrompe imediatamente, sem executar pontosde verificação (checkpoints) em cada banco dedados.

TRUNCATE TABLE

Remove todas as linhas de uma tabela, mantendo somentesua estrutura.

TRUNCATE TABLE tabela

UPDATE

Altera os dados existentes em uma tabela.

UPDATE{ tabela WITH ( opção [...]) | nome_view }SET{ nome_coluna = { expressãon | DEFAULT | NULL }| @variável = expressão

| @variável = coluna = expressão }[,...][ FROM tabela_fonte [,...] ][ WHERE condição ][ OPTION ( opção [,...] ) ]

Cláusula WITH ::={ INDEX(número_índice [,...])| FASTFIRSTROW| HOLDLOCK| PAGLOCK| READCOMMITTED| REPEATABLEREAD| ROWLOCK| SERIALIZABLE| TABLOCK| TABLOCKX}

Page 59: Guia de Consulta Rapida - SQLServer e TransactSQL

58

Comandos

Cláusula OPTION ::={ { HASH | ORDER } GROUP| { CONCAT | HASH | MERGE } UNION| {LOOP | MERGE | HASH} JOIN| FAST número_linhas

| FORCE ORDER| MAXDOP| ROBUST PLAN| KEEP PLAN }

Argumento Descrição

nome_tabela Nome da tabela a ser atualizada.

WITH Especifica as instruções para o otimizador.Para mais detalhes veja a cláusula FROMdo comando SELECT na página 52.

nome_view Nome da view a ser atualizada.

SET Lista de colunas a serem atualizadas.

Nome_coluna Nome da coluna que será atualizada.

expressão Expressão cujo resultado será colocadona coluna ou varável que está sendoatualizada.

DEFAULT O valor default definido na coluna serácolocado na mesma.

@nome_variável Nome da variável que será atualizada.

FROM tabela_fonte Tabelas utilizadas para definir o critério doconjunto de dados que será atualizado.Para mais detalhes, veja a cláusula FROMdo comando SELECT na página 52.

WHERE Condições que devem ser satisfeitas paraformar o conjunto de dados a seratualizado. Quando estiver atualizandodados através de um cursor, utilize acláusula CURRENT OF nome_cursor, quedefine a linha atual do cursor.

OPTION Especifica as instruções que serãopassadas ao otimizador. Para maisdetalhes, veja a cláusula OPTION docomando SELECT na página 55.

Page 60: Guia de Consulta Rapida - SQLServer e TransactSQL

59

Comandos

UPDATETEXT

Atualiza um campo text, ntext ou image. Utilize oUPDATETEXT para alterar uma parte de uma colunado tipo text, ntext, ou image. Para alterar todo oconteúdo das colunas desses tipos de dados, utilize ocomando WRITETEXT.

UPDATETEXT {tabela_dest.coluna_dest texto_ptr_dest }{ NULL | insert_offset }{ NULL | tamanho_delete }[WITH LOG][ posição_insert | {tabela.coluna texto_ptr_fonte} ]

Argumento Descrição

tabela_dest.coluna_dest

Nome da tabela e coluna com tipo text, ntext ouimage a serem atualizadas.

texto_ptr_dest Valor (binary(16)) de ponteiro de texto (retornadopela função TEXTPTR) que aponta para os dadosdo tipo text, ntext ou image a serem atualizados.

insert_offset Posição inicial a partir da qual os dados serãoatualizados.

tamanho_delete Tamanho (em bytes) da porção de dados a serremovida.

WITH LOG Especifica que os dados inseridos do tipo text,ntext ou image serão registrados em arquivosde log. Possibilita a recuperação, mas poderapidamente aumentar o tamanho do log detransações.

posição_insert Os dados serão inseridos na coluna, na posiçãodefinida por este parâmetro.

tabela.coluna Nome da tabela e coluna utilizadas como fontedos dados inseridos.

texto_ptr_fonte Ponteiro para a coluna indicada como fonte dedados para a atualização.

UPDATE STATISTICS

Atualiza as informações sobre a distribuição dos valores-chave de um ou mais índices na tabela especificada. Éautomaticamente executado quando um índice é criadoem uma tabela que contém dados.

UPDATE STATISTICS tabela

[ índice | (nome_estatística[,...] ) ][ WITH[ [FULLSCAN] | SAMPLE número { PERCENT | ROWS } ]][ [,] [ ALL | COLUMNS | INDEX ]

[ [,] NORECOMPUTE]]

Page 61: Guia de Consulta Rapida - SQLServer e TransactSQL

60

Comandos

Argumento Descrição

tabela Nome da tabela para a qual asinformações estatísticas estão sendoatualizadas.

índice Nome do índice para o qual asinformações estatísticas estão sendoatualizadas.

nome_estatística Nome da estatística criada com ocomando CREATE STATISTCS.

FULLSCAN Efetua a varredura completa do índiceou tabela ao acumular as informaçõesestatísticas. O mesmo que SAMPLE100 PERCENT.

SAMPLE número {PERCENT | ROWS}

Especifica as linhas que serão tomadaspor amostragem para o cálculo dasestatísticas. Esse número pode ser umpercentual ou um valor absolutocorrespondente à quantidade de linhas.

ALL | COLUMNS | INDEX Especifica se o comando UPDATESTATISTICS afetará as informaçõesestatísticas de coluna e índices, outodas as informações estatísticasexistentes.

NORECOMPUTE Não recalcula automaticamenteinformações estatísticasdesatualizadas.

USE

Altera o contexto de banco de dados para o banco dedados especificado.

USE nome_db

WAITFOR

Especifica um intervalo de tempo que o SQL Serverdeve esperar antes de executar o próximo comando ouprocedure no lote, ou determina um horário para execuçãodo comando.

WAITFOR { DELAY 'horário' | TIME 'horário' }

Parâmetro Descrição

DELAY O SQL Server deve esperar o período de tempoespecificado (no máximo 24 horas).

TIME O SQL Server deve esperar até o horário especificado(no formato tipo datetime).

Page 62: Guia de Consulta Rapida - SQLServer e TransactSQL

61

WHILE

Executa um comando_sql ou um bloco de comandosenquanto uma condição for verdadeira. A condição éverificada antes da execução do comando SQL ou blocode comandos.

WHILE condição

{ comando_sql | bloco_comandos }[BREAK]{ comando_sql | bloco_comandos }[ CONTINUE ]

Parâmetro Descrição

condição Uma expressão que retorna True ou False. Se acondição contiver um comando SELECT, eledeverá estar entre parênteses.

comando_sql | bloco_comandos

Comando SQL ou bloco de comandos SQLdelimitados pelas palavras-chave BEGIN e END.

BREAK Sai do laço WHILE mais interno.

CONTINUE Reinicia o laço WHILE.

WRITETEXT

Permite a atualização interativa de uma coluna do tipotext, ntext ou image. Não pode ser usado em colunas dotipo text, ntext e image em views.

WRITETEXT { tabela.coluna texto_ptr } [ WITH LOG ] { dados }

Argumento Descrição

tabela.coluna Nome da tabela e coluna do tipo text, ntext ouimage a serem atualizadas.

texto_ptr Valor (tipo binary(16)) que armazena o ponteiropara os dados do tipo text, ntext ou image.

WITH LOG Grava a transação no log de transações. Atentarpara o fato de que transações com os tipos dedados text, ntext, ou image ocupam muito espaçono log.

data Dados do tipo text, ntext ou image a seremarmazenados.

Comandos

Page 63: Guia de Consulta Rapida - SQLServer e TransactSQL

62

Comandos DBCC

DBCC CHECKALLOC

Verifica e tenta corrigir, quando necessário, a alocaçãoe uso de todas as páginas em um banco de dados.

DBCC CHECKALLOC( 'nome_bd'

[, NOINDEX |{ REPAIR_ALLOW_DATA_LOSS

| REPAIR_FAST| REPAIR_REBUILD

} ])[ WITH { ALL_ERRORMSGS | NO_INFOMSGS } ]

Argumento Descrição

nome_bd Nome do banco de dados.

NOINDEX Não verifica índices não clusterizados.

REPAIR_ALLOW_DATA_LOSS

Corrige a alocação das páginas,removendo objetos corrompidos queestejam causando a perda dos dados queestão nesses objetos.

REPAIR_FAST Tenta corrigir eventuais inconsistências,mas não remove objetos queeventualmente estejam corrompidos.

REPAIR_REBUID Tenta corrigir a alocação das páginas.Caso todas as eventuais inconsistênciastenham sido corrigidas, reconstrói todosos índices do banco de dados.

WITH Mensagens a serem retornadas.

ALL_ERRORMSGS Exibe todas as mensagens de erro.

NO_INFOMSGS Exibe somente as mensagenssignificativas.

DBCC CHECKCATALOG

Verifica e tenta corrigir, quando necessário, aconsistência das tabelas do sistema e a integridadereferencial entre elas.

DBCC CHECKCATALOG ( 'nome_bd')[WITH NO_INFOMSGS]

Argumento Descrição

nome_bd Nome do banco de dados.

WITH NO_INFOMSGS Exibe somente as mensagenssignificativas. Se não especificado, exibirátodas as mensagens de erro.

DBCC

Page 64: Guia de Consulta Rapida - SQLServer e TransactSQL

63

DBCC CHECKDB

Verifica e tenta corrigir, quando necessário, a alocaçãode páginas e a integridade estrutural de todos os objetosem um banco de dados.

DBCC CHECKDB('nome_bd'

[, NOINDEX| { REPAIR_ALLOW_DATA_LOSS

| REPAIR_FAST| REPAIR_REBUILD

} ] )[WITH {ALL_ERRORMSGS | NO_INFOMSGS}]

Argumento Descrição

nome_bd Nome do banco de dados.

NOINDEX Não verifica índices não clusterizados.

REPAIR_ALLOW_DATA_LOSS

Corrige a alocação das páginas,removendo objetos corrompidos queestejam causando a perda dos dados queestão nesses objetos.

REPAIR_FAST Tenta corrigir eventuais inconsistências,mas não remove objetos queeventualmente estejam corrompidos.

REPAIR_REBUID Tenta corrigir a alocação das páginas.Caso todas as eventuais inconsistênciastenham sido corrigidas, reconstrói todosos índices do banco de dados.

WITH Mensagens a serem retornadas.

ALL_ERRORMSGS Exibe todas as mensagens de erro.

NO_INFOMSGS Exibe somente as mensagenssignificativas.

DBCC

Page 65: Guia de Consulta Rapida - SQLServer e TransactSQL

64

DBCC CHECKFILEGROUP

Verifica e tenta corrigir, quando necessário, a alocaçãodas páginas em um grupo de arquivos utilizado pelobanco de dados corrente. Para saber mais sobre gruposde arquivos, veja o comando CREATE DATABASE.

DBCC CHECKFILEGROUP( [{'filegroup' | filegroup_id}] [, NOINDEX])[WITH {ALL_ERRORMSGS | NO_INFOMSGS}]

Argumento Descrição

filegroup Nome do grupo de arquivos.

filegroup_id Identificador do grupo de arquivos.

NOINDEX Não verifica índices não clusterizados.

WITH Mensagens a serem retornadas.

ALL_ERRORMSGS Exibe todas as mensagens de erro.

NO_INFOMSGS Exibe somente as mensagenssignificativas.

DBCC CHECKIDENT

Verifica e corrige o valor atual da coluna de auto-incremento (IDENTITY) em uma tabela específica.Para saber mais sobre colunas do tipo auto-incremento(IDENTITY), veja o comando CREATE TABLE.

DBCC CHECKIDENT( 'nome_tabela'[, { NORESEED | {RESEED [, novo_valor ]} }] )

Argumento Descrição

nome_tabela Nome da tabela a ser verificada, que deve conteruma coluna com o atributo IDENTITY.

NORESEED Não corrige o valor para geração automática dacoluna de auto-incremento.

RESEED Atualiza o valor de geração automática, pelovalor indicado em novo_valor.

novo_valor Novo valor a ser colocado na próxima chavegerada para a tabela.

DBCC

Page 66: Guia de Consulta Rapida - SQLServer e TransactSQL

65

DBCC CHECKTABLE

Verifica a integridade e alocação dos dados em umatabela e seus respectivos índices.

DBCC CHECKTABLE( 'nome_tabela'[, NOINDEX| index_id

| { REPAIR_ALLOW_DATA_LOSS| REPAIR_FAST| REPAIR_REBUILD } ] )[ WITH { ALL_ERRORMSGS | NO_INFOMSGS } ]

Argumento Descrição

nome_tabela Nome da tabela.

NOINDEX Não verifica índices não clusterizados.

index_id Identificador do índice que seráverificado.

REPAIR_ALLOW_DATA_LOSS

Corrige a alocação das páginas,removendo objetos corrompidos queestejam causando a perda dos dadosque estão nesses objetos.

REPAIR_FAST Tenta corrigir eventuaisinconsistências, mas não removeobjetos que eventualmente estejamcorrompidos.

REPAIR_REBUID Tenta corrigir a alocação das páginas.Caso todas as eventuaisinconsistências tenham sido corrigidas,reconstrói todos os índices do bancode dados.

WITH Mensagens a serem retornadas.

ALL_ERRORMSGS Exibe todas as mensagens de erro.

NO_INFOMSGS Exibe somente as mensagenssignificativas.

DBCC DBREPAIR

Elimina um banco de dados danificado. Comandoobsoleto, mantido apenas para compatibilidade comversões anteriores. Recomenda-se utilizar o comandoDROP DATABASE.

DBCC

Page 67: Guia de Consulta Rapida - SQLServer e TransactSQL

66

DBCC DBREINDEX

Reconstrói um ou mais índices de uma tabela em umbanco de dados.

DBCC DBREINDEX( [ 'nome_bd.nome_dono.nome_tabela'[, nome_índice [, fator_preench ] ] ] )[WITH NO_INFOMSGS]

Argumento Descrição

nome_bd.nome_dono.nome_tabela

Nome da tabela.

nome_índice Nome do índice a ser recriado. Se nãoespecificado, todos os índices serãorecriados.

fator_preench Porcentagem do espaço preenchido emcada página do índice. Ganha-se emdesempenho quando as páginas não sãopreenchidas por completo na criação dosíndices, porém o espaço ocupado é maior.

WITH NO_INFOMSGS Exibe somente as mensagenssignificativas.

DBCC dllname (FREE)

Retira da memória uma DLL (Dynamic Link Library)que contenha as funções utilizadas por proceduresestendidas.

DBCC HELP

Retorna a informação de sintaxe de um comando DBCC.

DBCC HELP ('comando_dbcc' | '?')

Argumento Descrição

comando_dbcc Comando DBCC do qual se quer saber a sintaxe.

? Mostra todas as opções disponíveis no help.

DBCC INPUTBUFFER

Exibe o último comando executado pelo usuário.

DBCC INPUTBUFFER (spid)

Argumento Descrição

spid Número da conexão do usuário. Será mostrado oúltimo comando dessa conexão. Para saber o númeroda conexão, utilize a procedure sp_who (veja noGuia de Consulta Rápida SQL Server 7 SystemProcedures desta mesma Editora).

DBCC

Page 68: Guia de Consulta Rapida - SQLServer e TransactSQL

67

DBCC NEWALLOC

Comando obsoleto, mantido apenas para compatibilidaderetroativa. Recomenda-se utilizar DBCCCHECKALLOC.

DBCC OPENTRAN

Mostra informações da transação ativa mais antiga emum banco de dados. Transações de replicação tambémsão consideradas.

DBCC OPENTRAN( { 'nome_db' | id_bd } )[ WITH TABLERESULTS [, NO_INFOMSGS]]

Argumento Descrição

nome_bd Nome do banco de dados.

id_bd Identificador do banco de dados.

WITH TABLERESULTS Indica que os resultados devem serformatados tabularmente, permitindoinclui-los em uma tabela.

NO_INFOMSGS Exibe somente as mensagens de errosignificativas.

DBCC OUTPUTBUFFER

Mostra as informações, em formato hexadecimal eASCII, do buffer de saída associado a uma conexão dousuário. O buffer de saída contém os resultados doúltimo comando processado pelo usuário.

DBCC OUTPUTBUFFER (spid)

Argumento Descrição

spid Identificador da conexão do usuário, que pode serobtido com a procedure sp_who.

DBCC PINTABLE

Mantém na memória RAM do servidor cópias das páginasde uma tabela à medida que são lidas. Pode melhorar odesempenho, porém diminui o total de memória disponívelpara as outras operações do SQL Server.

DBCC PINTABLE (id_banco_dados, id_tabela)

Argumento Descrição

id_banco_dados Identificador do banco de dados, que pode serobtido utilizando a função db_id().

id_tabela Identificador da tabela, que pode ser obtidoutilizando a função object_id().

DBCC

Page 69: Guia de Consulta Rapida - SQLServer e TransactSQL

68

DBCC PROCCACHE

Mostra informações, em formato tabular, sobre o cachede procedures.

DBCC PROCCACHE

DBCC ROWLOCK

Mantido para compatibilidade com a versão 6.5. Suafunção já está implícita no SQL Server 7.

DBCC SHOWCONTIG

Exibe informações sobre a fragmentação de uma tabelaou índice.

DBCC SHOWCONTIG [( id_tabela [, id_índice])]

Argumento Descrição

id_tabela Identificador da tabela, que pode ser obtido com afunção object_id().

id_índice Identificador do índice, que pode ser obtidoconsultando a tabela sysindexes.

DBCC SHOW_STATISTICS

Exibe estatísticas de distribuição dos índices de umatabela específica.

DBCC SHOW_STATISTICS (nome_tabela, target)

Argumento Descrição

nome_tabela Nome da tabela.

target Nome do índice ou coleção utilizada em objetosde suporte a decisão (DSO-DecisionSupportObjects).

DBCC

Page 70: Guia de Consulta Rapida - SQLServer e TransactSQL

69

DBCC SHRINKDATABASE

Reduz o tamanho dos arquivos de um banco de dados.

DBCC SHRINKDATABASE( nome_bd [, porcent][, { NOTRUNCATE | TRUNCATEONLY } ] )

Argumento Descrição

nome_bd Nome do banco de dados.

porcent Percentual de espaço livre desejado após aredução do tamanho dos arquivos.

NOTRUNCATE O espaço liberado continua sendo utilizadopelo SQL Server e não aparece como espaçolivre para o sistema operacional.

TRUNCATEONLY O espaço liberado deixa de ser utilizado peloSQL Server e fica à disposição do sistemaoperacional.

DBCC SHRINKFILE

Reduz o tamanho de um arquivo de dados ou log de umbanco de dados.

DBCC SHRINKFILE( {nome_arq | id_arq }

{ [, tamanho]| [, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY

} ] } )

Argumento Descrição

nome_arq Nome do arquivo de dados ou log.

id_arq Identificador do arquivo. Para obter essainformação, consulte a tabela sysfiles.

tamanho Novo tamanho desejado (MB).

EMPTYFILE Esvazia o arquivo especificado, migrandotodos os dados para outros arquivos do mesmogrupo de arquivos, o que permite que essearquivo seja eliminado utilizando o comandoALTER DATABASE.

NOTRUNCATE O espaço liberado continua sendo utilizadopelo SQL Server e não aparece como espaçolivre para o sistema operacional.

TRUNCATEONLY O espaço liberado deixa de ser utilizado peloSQL Server e fica à disposição do sistemaoperacional.

DBCC

Page 71: Guia de Consulta Rapida - SQLServer e TransactSQL

70

DBCC SQLPERF

Fornece estatísticas sobre o espaço do log de transaçõesem todos os bancos de dados. O log de transaçõesmantém informações sobre alterações de dados em cadabanco de dados. Essas estatísticas podem ser utilizadaspara monitorar a quantidade de espaço utilizado e indicaquando efetuar o backup ou esvaziar o log de transações.

DBCC SQLPERF (LOGSPACE)

DBCC TEXTALL

Executa o DBCC TEXTALLOC em todas as tabelasque contenham colunas com tipos de dados Text, Ntext

ou Image. Mantido para compatibilidade com as versõesanteriores. Recomenda-se a utilização do comandoDBCC CHECKDB.

DBCC TEXTALLOC

Verifica e corrige a alocação dos dados em colunas dostipos Text, Ntext ou Image. Comando obsoleto, mantidoapenas para compatibilidade retroativa. Recomenda-sea utilização do comando DBCC CHECKDB.

DBCC TRACEOFF

Desabilita um trace flag. Trace Flags são utilizados paramodificar algumas características específicas do SQLServer e devem ser usados por DBAs experientes oucom o auxílio do suporte da Microsoft.

DBCC TRACEOFF (num_trace [,...])

Argumento Descrição

num_trace Número de identificação do trace flag a serdesabilitado. Veja a lista de trace flags disponíveisna documentação on-line do SQL Server.

DBCC

Page 72: Guia de Consulta Rapida - SQLServer e TransactSQL

71

DBCC TRACEON

Habilita um trace flag. Trace Flags são utilizados paramodificar algumas características específicas do SQLServer e devem ser usados por DBAs experientes oucom o auxílio do suporte da Microsoft.

DBCC TRACEON (num_trace [,...])

Argumento Descrição

num_trace Número de identificação do trace flag a ser habilitado.Veja a lista de trace flags disponíveis nadocumentação on-line do SQL Server.

DBCC TRACESTATUS

Mostra o status de um Trace Flag. Retorna ON ou OFF.

DBCC TRACESTATUS (num_trace [,...])

Argumento Descrição

num_trace Número de identificação do trace flag cujo statusserá verificado.

DBCC UNPINTABLE

Retira da memória RAM do servidor as páginas de umatabela que tenham sido colocadas após a utilização docomando DBCC PINTABLE, liberando mais espaçopara as operações normais de cache de dados do SQLServer.

DBCC UNPINTABLE (id_bd, id_tabela)

Argumento Descrição

id_bd Identificador do banco de dados, que pode serobtido utilizando a função db_id().

id_tabela Identificador da tabela, que pode ser obtido utilizandoa função object_id().

DBCC

Page 73: Guia de Consulta Rapida - SQLServer e TransactSQL

72

DBCC

DBCC UPDATEUSAGE

Atualiza as informações de alocação de páginas e espaçodisponível de uma tabela, para que o otimizador possatomar decisões mais precisas. Também afeta o resultadoda procedure sp_spaceused.

DBCC UPDATEUSAGE( {'nome_bd' | 0}

[, 'nome_tabela' [, id_índice]]

) [ WITH [COUNT_ROWS] [, NO_INFOMSGS ]]

Argumento Descrição

nome_bd | 0 Nome do banco de dados. Se for especificado0, será utilizado o banco de dados corrente.

nome_tabela Nome da tabela.

id_índice Número identificador do índice.

WITH Mensagens a serem retornadas.

COUNT_ROWS Indica que a coluna ROWS da tabelasysindexes será atualizada com a quantidadeatual de linhas da tabela.

NO_INFOMSGS Exibe somente as mensagens significativas.

DBCC USEROPTIONS

Retorna as opções SET que estejam ativas para a conexãocorrente.

DBCC USEROPTIONS

Page 74: Guia de Consulta Rapida - SQLServer e TransactSQL

73

Comandos SET

SET ANSI_DEFAULTS

Utiliza (ON) ou não (OFF) o padrão SQL-92 para oconjunto de configurações abaixo.

SET ANSI_DEFAULTS

SET ANSI_NULLS

SET ANSI_NULL_DFLT_ON

SET ANSI_PADDING

SET ANSI_WARNINGS

SET CURSOR_CLOSE_ON_COMMIT

SET IMPLICIT_TRANSACTIONS

SET QUOTED_IDENTIFIER

SET ANSI_NULL_DFLT_OFF

Altera (ON) ou não (OFF) a opção ANSI NULLDEFAULT para FALSE, somente para a sessão corrente.Caso a propriedade de nulidade não seja especificadanos comandos de criação de novas tabelas, fica definidapor default como NOT NULL para todas as colunas.

SET ANSI_NULL_DFLT_OFF {ON | OFF}

SET ANSI_NULL_DFLT_ON

Altera (ON) ou não (OFF) a opção ANSI NULLDEFAULT para TRUE, somente para a sessão corrente.Caso a propriedade de nulidade não seja especificadanos comandos de criação de novas tabelas, fica definidapor default como NOT NULL para todas as colunas.

SET ANSI_NULL_DFLT_ON {ON | OFF}

SET ANSI_NULLS

Utiliza (ON) ou não (OFF) o padrão SQL-92 paracomparações (igualdade (=) ou desigualdade (<>))envolvendo valores nulos (NULL). O padrão SQL-92define que valores nulos não podem ser comparados porigualdades ou desigualdades, mas sim por IS ou ISNOT.

SET ANSI_NULLS {ON | OFF}

SET

Page 75: Guia de Consulta Rapida - SQLServer e TransactSQL

74

SET ANSI_PADDING

Utiliza (ON) ou não (OFF) o padrão SQL-92 parapreenchimento de colunas do tipo char, varchar, binarye varbinary. O padrão SQL-92 define que espaços embranco não significativos (à direita do último caracteredo string) em colunas do tipo char ou varchar serãoarmazenados, assim como zeros à esquerda em colunasdo tipo binary ou varbinary.

SET ANSI_PADDING {ON | OFF}

SET ANSI_WARNINGS

Utiliza (ON) ou não (OFF) o padrão SQL-92 naocorrência de algumas situações de erro. Para situaçõesdo tipo divisão por zero e cálculo de funções agregadasenvolvendo valores nulos, o padrão SQL-92 define quedevem ser mostradas mensagens de alerta.

SET ANSI_WARNINGS {ON | OFF}

SET ARITHABORT

Encerra (ON) ou não (OFF) a query e desfaz a transaçãoquando ocorrer overflow (o valor atribuído a uma variávelou coluna ultrapassa o limite do tipo de dados) oudivisão por zero.

SET ARITHABORT {ON | OFF}

SET ARITHIGNORE

Continua (ON) ou não (OFF) a execução de uma queryquando ocorrer overflow ou divisão por zero.

SET ARITHIGNORE {ON | OFF}

SET CONCAT_NULL_YIELDS_NULL

Controla o comportamento do SQL Server em operaçõesde concatenação de strings e valores nulos. Se habilitado(ON), o resultado de “xpto” + null será “xpto”. Sedesabilitado (OFF), o resultado de “xpto” + null seránull.

SET CONCAT_NULL_YIELDS_NULL {ON | OFF}

SET CURSOR_CLOSE_ON_COMMIT

Fecha (ON) ou não (OFF) o cursor quando for feito umcommit para a transação.

SET CURSOR_CLOSE_ON_COMMIT {ON | OFF}

SET

Page 76: Guia de Consulta Rapida - SQLServer e TransactSQL

75

SET DATEFIRST

Define o primeiro dia da semana(1=Segunda,...7=Domingo).

SET DATEFIRST número

Argumento Descrição

número Dia que será definido como o primeiro da semana(1=Segunda,...7=Domingo).

SET DATEFORMAT

Define o formato de apresentação de colunas e variáveisdos tipos Datetime ou Smalldatetime.

SET DATEFORMAT formato

Argumento Descrição

formato Ordem relativa das partes da data. Parâmetrosválidos: mdy (default), dmy, ymd, ydm, myd, e dym,onde d=dia, m=mês, y=ano.

SET DEADLOCK_PRIORITY

Define o comportamento do SQL Server em situaçõesde deadlock (quando dois processos se bloqueiammutuamente) envolvendo a conexão corrente.

SET DEADLOCK_PRIORITY {LOW | NORMAL | @deadlock_var}

Argumento Descrição

LOW Indica que a sessão corrente será sempreescolhida para ser interrompida em caso dedeadlock.

NORMAL Utiliza o método padrão do SQL Server paratratamento de situações de deadlock.

@deadlock_var Variável do tipo Char ou Varchar, que conterá aprioridade de deadlock para a sessão corrente.Caso seu conteúdo seja 3, indica LOW, caso seja6 indica NORMAL.

SET DISABLE_DEF_CNST_CHK

Comando obsoleto, mantido para compatibilidade comversões anteriores. Sua funcionalidade já faz parte doSQL Server.

SET

Page 77: Guia de Consulta Rapida - SQLServer e TransactSQL

76

SET FIPS_FLAGGER

Verifica a compatibilidade com o padrão FIPS 127-2(Federal Information Processing Standard), padrãodefinido pelo governo americano para sistemas deinformação. No caso de servidores de bancos de dados,o padrão FIPS 127-2 é baseado nas definições doSQL92.

SET FIPS_FLAGGER nível

Argumento Descrição

nível Nível de compatibilidade com o padrão FIPS127-2.

ENTRY Compatibilidade mínima.

FULL Compatibilidate total.

INTERMEDIATE Nível médio de compatibilidade.

OFF Não ativa a checagem de compatibilidadecom o padrão FIPS 127-2.

SET FMTONLY

Retorna somente a estrutura dos resultados (ON) ou osresultados completos (OFF) que seriam trazidos pelasqueries.

SET FMTONLY {ON | OFF}

SET FORCEPLAN

Força (ON) ou não (OFF) o otimizador a processar umajunção (join) utilizando as tabelas na ordem em queforam colocadas na cláusula FROM.

SET FORCEPLAN {ON | OFF}

SET IDENTITY_INSERT

Permite que valores explícitos possam ser colocados emcolunas com a propriedade de auto-incrmento (identity).

SET IDENTITY_INSERT [nome_bd.[nome_dono.]]{nome_tabela}{ON | OFF}

Argumento Descrição

nome_bd Nome do banco de dados.

nome_dono Nome do proprietário da tabela.

nome_tabela Nome da tabela que possui a coluna compropriedade de auto-incremento.

SET

Page 78: Guia de Consulta Rapida - SQLServer e TransactSQL

77

SET IMPLICIT_TRANSACTIONS

Utiliza (ON) ou não (OFF) o modo de transação implícitapara a conexão. Modo de transação implícita significaque a cada comando executado, o SQL Server gerará umcommit automático. Para transações explícitas, o SQLServer só completará a transação após um comando decommit feito explicitamente pelo usuário.

SET IMPLICIT_TRANSACTIONS {ON | OFF}

SET LANGUAGE

Configura o idioma utilizado para a conexão (sessão). Oidioma também determina o formato de data/hora, alémdos textos de mensagens do sistema.

SET LANGUAGE {[N]'idioma'}

Argumento Descrição

[N]'idioma' Nome do idioma que já deve estar instalado no SQLServer. Para saber quais estão disponíveis, veja atabela syslanguages no banco de dados master.Para especificar um idioma no formato Unicode,utilize o formato N'idioma'

SET LOCK_TIMEOUT

Especifica o tempo (em milissegundos) que um comandodeve esperar até um lock ser liberado. Passado essetempo, uma mensagem de erro será mostrada e o comandoserá interrompido.

SET LOCK_TIMEOUT período

Argumento Descrição

periodo Período (em milissegundos) que o SQL Serveraguardará para que o lock seja liberado.

SET NOCOUNT

Exibe (ON) ou não (OFF) a mensagem indicando onúmero de linhas afetadas por um comando Transact-SQL. Não afeta a variável global @@rowcount.

SET NOCOUNT {ON | OFF}

SET NOEXEC

Configura o SQL Server para apenas compilar (ON) oucompilar e executar (OFF) as queries.

SET NOEXEC {ON | OFF}

SET

Page 79: Guia de Consulta Rapida - SQLServer e TransactSQL

78

SET NUMERIC_ROUNDABORT

Gera (ON) ou não (OFF) um erro quando o arredondamentoem uma expressão ocasionar perda de precisão.

SET NUMERIC_ROUNDABORT {ON | OFF}

SET OFFSETS

Retorna o offset (posição relativa ao início de umcomando) das palavras-chave especificadas noscomandos Transact-SQL para aplicações DB-Library.

SET OFFSETS palavra-chave, ...

SET PARSEONLY

Verifica somente a sintaxe (ON) ou verifica a sintaxe eexecuta cada comando (OFF) Transact-SQL.

SET PARSEONLY {ON | OFF}

SET PROCID

Retorna (ON) ou não (OFF) o número de identificaçãode uma stored procedure para aplicações DB-Libraryantes de enviar o resultado gerado pela stored procedure.

SET PROCID {ON | OFF}

SET QUERY_GOVERNOR_COST_LIMIT

Altera o valor da opçãoQUERY_GOVERNOR_COST_LIMIT configuradacom a procedure sp_configure. Esta opção limita otempo de execução de uma query.

SET QUERY_GOVERNOR_COST_LIMIT valor

Argumento Descrição

valor Tempo limite (em segundos) que uma query podeficar executando. Caso o otimizador calcule que aquery consumirá mais tempo que o permitido, oprocessamento será interrompido.

SET QUOTED_IDENTIFIER

Utiliza (ON) ou não (OFF) o padrão SQL-92 para aidentificação de objetos. O padrão SQL-92 define quepodem ser colocados caracteres especiais (como espaçosem branco) ou palavras reservadas (como SELECT) nosnomes dos objetos, desde que colocados entre aspasduplas (“”).

SET QUOTED_IDENTIFIER {ON | OFF}

SET

Page 80: Guia de Consulta Rapida - SQLServer e TransactSQL

79

SET REMOTE_PROC_TRANSACTIONS

Cria (ON) ou não (OFF) uma transação distribuídaquando estiver executando uma procedure remota apartir da transação local.

SET REMOTE_PROC_TRANSACTIONS {ON | OFF}

SET ROWCOUNT

Especifica o número máximo de linhas que serãoretornadas por uma query.

SET ROWCOUNT número

SET SHOWPLAN_ALL

Mostra (ON) ou não (OFF) informações detalhadas daexecução dos comandos e estimativa dos recursosnecessários para cada execução.

SET SHOWPLAN_ALL {ON | OFF}

SET SHOWPLAN_TEXT

Mostra (ON) ou não (OFF) informações detalhadassobre como os comandos seriam executados, semcontudo executá-los.

SET SHOWPLAN_TEXT {ON | OFF}

SET STATISTICS IO

Mostra (ON) ou não (OFF) informações estatísticassobre a atividade de disco gerada pelos comandosTransact-SQL.

SET STATISTICS IO {ON | OFF}

SET STATISTICS PROFILE

Mostra (ON) ou não (OFF) informações estatísticasapós a execução de uma query, indicando tempo de CPUutilizado, índices, quantidade de linhas afetadas, alémde outras informações úteis.

SET STATISTICS PROFILE {ON | OFF}

SET STATISTICS TIME

Mostra (ON) ou não (OFF) o tempo (em milissegundos)utilizado para verificar sintaxe, compilar e executarcada comando.

SET STATISTICS TIME {ON | OFF}

SET

Page 81: Guia de Consulta Rapida - SQLServer e TransactSQL

80

SET TEXTSIZE

Especifica a quantidade de bytes que serão retornadospor um comando SELECT, para colunas com tipos dedados Text ou Ntext. Afeta a variável @@TEXTSIZE.

SET TEXTSIZE numbytes

SET TRANSACTION ISOLATION LEVEL

Define como o SQL Server gerenciará os bloqueios(locks) de cada transação.

SET TRANSACTION ISOLATION LEVEL{ READ COMMITTED | READ UNCOMMITTED| REPEATABLE READ | SERIALIZABLE }

Argumento Descrição

READ COMMITTED Indica que as alterações feitas por umatransação (X) só ficarão disponíveis paraoutras transações após o COMMIT ouROLLBACK da transação (X). Apesar dediminuir a disponibilidade dos dados (osdados só ficam disponíveis após umCOMMIT ou ROLLBACK), garante aprecisão das queries.

READ UNCOMMITTED Indica que as alterações feitas por umatransação (X) ficarão disponíveis para asoutras transações, independente de tersido executado um COMMIT ouROLLBACK. Aumenta a disponibilidadedos dados, mas diminui a precisão dasqueries por estar fazendo operações emdados que podem ser desfeitos por umcomando ROLLBACK.

REPEATABLE READ Caso seja necessário ler uma linha databela mais do que uma vez na mesmatransação, esta opção não permite quesejam feitas modificações nessa linha atéque um comando COMMIT ou ROLLBACKseja executado. Isso garante que atransação tenha sempre o mesmo valor.

SERIALIZABLE Não permite modificações nas páginasafetadas por uma transação, até que sejaexecutado um COMMIT.

SET XACT_ABORT

Executa (ON) automaticamente ou não (OFF) umcomando ROLLBACK quando ocorrer algum erro natransação.

SET XACT_ABORT{ON | OFF}

SET

Page 82: Guia de Consulta Rapida - SQLServer e TransactSQL

81

Funções de Agregação

Sintaxe

função_agregada ([ALL | DISTINCT] expressão)

Argumento Descrição

função_agregada Especifica a função. Pode ser SUM, AVG,COUNT, MIN, MAX.

expressão Pode ser o nome de uma coluna, uma constante,uma função ou qualquer combinação de colunas,constantes e funções.

ALL (default) Aplica a função de agregação para todos osvalores.

DISTINCT Elimina valores duplicados antes de aplicar afunção de agregação.

AVG

Retorna a média dos valores em uma expressão numérica.Valores NULL são ignorados.

COUNT

Retorna o número de expressões com conteúdo diferentede NULL.

COUNT(*)

Retorna o número total de linhas (inclusive com valoresNULL).

GROUPING

Adiciona uma nova coluna ao resultado das queries queutilizam os operadores CUBE ou ROLLUP. Essa colunaconterá o valor 1 caso a linha tenha sido criada porCUBE ou ROLLUP, facilitando a identificação nosresultados.

GROUPING(nome_coluna)

Argumento Descrição

nome_coluna Coluna pertencente à cláusula GROUP BY da query.

MAX

Retorna o maior valor.

Funções de Agregação

Page 83: Guia de Consulta Rapida - SQLServer e TransactSQL

82

MIN

Retorna o menor valor.

SUM

Retorna a soma total das expressões numéricas.

STDEV

Retorna o desvio padrão (função estatística) de umaexpressão numérica.

STDEVP

Retorna o desvio padrão populacional de uma expressãonumérica.

VAR

Retorna a variação estatística de uma expressão numérica.

VARP

Retorna a variação estatística populacional de umaexpressão numérica.

Funções de Agregação

Page 84: Guia de Consulta Rapida - SQLServer e TransactSQL

83

Funções de Configuração

@@CONNECTIONS

Retorna o número de conexões ou tentativas de conexãodesde que o SQL Server foi inicializado.

@@DATEFIRST

Retorna o valor corrente do parâmetro SETDATEFIRST, que indica o primeiro dia de cada semana(1-Seg, 7-Sab).

@@DBTS

Retorna o valor do timestamp atual para o banco dedados corrente.

@@LANGUAGE

Retorna o nome do idioma atualmente em uso.

@@LANGID

Retorna o identificador (ID) do idioma em uso.

@@LOCK_TIMEOUT

Retorna a definição corrente de lock time (emmilissegundos).

@@MAX_CONNECTIONS

Retorna o número máximo de conexões simultâneas quepodem ser configuradas com a procedure sp_configure.

@@MAX_PRECISION

Retorna o nível de precisão corrente utilizado nos tiposde dados decimal e numeric.

@@NESTLEVEL

Retorna o nível de aninhamento de execução da storedprocedure ou trigger corrente. Cada vez que um triggerou uma stored procedure chama outro trigger ou storedprocedure, o nível de aninhamento é incrementado.Quando o máximo de 32 é atingido, a transação éencerrada.

Funções de Configuração

Page 85: Guia de Consulta Rapida - SQLServer e TransactSQL

84

@@OPTIONS

Retorna informações sobre as opções SET.

@@REMSERVER

Retorna o nome de um servidor remoto. Útil paraidentificar de qual servidor partiu a chamada de umaprocedure que está no servidor local.

@@SERVERNAME

Retorna o nome do servidor local que está executandoo SQL Server.

@@SERVICENAME

Retorna o nome da chave no Registry sob a qual o SQLServer está sendo executado.

@@SPID

Retorna o identificador do processo (conexão ou sessão)no servidor.

@@TEXTSIZE

Retorna o valor corrente da opção TEXTSIZE docomando SET.

@@VERSION

Retorna a data, a versão e o tipo do processador utilizadona instalação corrente do SQL Server.

Funções de Configuração

Page 86: Guia de Consulta Rapida - SQLServer e TransactSQL

85

Funções de Cursor

@@CURSOR_ROWS

Variável que contém a quantidade de linhas do últimocursor aberto na conexão corrente.

@@CURSOR_ROWS

Valor Significado

-m O cursor está sendo preenchido no modo assíncrono.O valor retornado (-m) é o número de linhas correnteno keyset.

-1 Cursor dinâmico. Não é possível determinar setodas as linhas qualificadas já foram trazidas.

0 Não há cursor aberto, ou não foi trazida nenhumalinha do último cursor aberto.

n Total de linhas trazidas pelo cursor.

CURSOR_STATUS

Permite ao chamador de uma stored procedure determinarse a procedure retornou um cursor e um resultset paraum determinado parâmetro.

CURSOR_STATUS( { 'local', 'nome_cursor'}| {'global', 'nome_cursor'}| {'variável', 'nome_var_cursor'} )

Argumento Descrição

local Indica que o cursor é local.

nome_cursor Nome do cursor.

global Indica que o cursor é global.

variável Indica que o cursor é uma variável local.

nome_var_cursor Nome da variável com tipo de dadosCURSOR.

@@FETCH_STATUS

Variável que contém o status do último comando FETCHexecutado na conexão.

@@FETCH_STATUS

Valor Significado

0 O comando FETCH foi executado com sucesso.

-1 Indica que houve tentativa de passar o final ou oinício do cursor.

-2 Tentativa de trazer uma linha que já não existe mais.

Funções de Cursor

Page 87: Guia de Consulta Rapida - SQLServer e TransactSQL

86

Funções de Data e Hora

Todas as funções de data usam as seguintes unidades de dataou hora, às quais será feita referência como item.

Unidade Abreviações

Ano yy, yyyy

Trimestre (1-4) qq, q

Mês (1-12) mm, m

Dia no ano (1-366) dy, y

Dia (1-31) dd, d

Semana wk, ww

Hora (0-23) hh

Minuto (0-59) mi, n

Segundo (0-59) ss, s

Milissegundo (0-999) ms

DATEADD

Retorna uma nova data baseado na soma do número deunidades especificadas pelo valor unidade a uma data(ver tabela descritiva na página acima).

DATEADD(unidade, número_unid, data)

DATEDIFF

Calcula a diferença entre as duas partes da data data1 edata2, e retorna o resultado como um inteiro, em unidadesespecificadas por unidade (ver tabela descritiva napágina acima).

DATEDIFF(unidade, data1, data2)

DATENAME

Retorna a parte unidade especificada da data como umstring de caracteres (Mon, Tue, ...,) (ver tabela descritivana página acima)

DATENAME(unidade, data)

DATEPART

Retorna a parte unidade (ver tabela descritiva na páginaacima) especificada de uma data como um inteiro.

DATEPART(unidade, data)

Funções de Data e Hora

Page 88: Guia de Consulta Rapida - SQLServer e TransactSQL

87

DAY

Retorna o dia do mês de uma data especificada.Equivalente a DATEPART(dd, data).

DAY(data)

GETDATE

Retorna a data e a hora atuais do sistema.

GETDATE()

MONTH

Retorna o mês de uma data especificada. Equivalente àfunção DATEPART(mm, data).

MONTH(data)

YEAR

Retorna o ano de uma data especificada. Equivalente àfunção DATEPART(yy, data).

YEAR(data)

Funções de Data e Hora

Page 89: Guia de Consulta Rapida - SQLServer e TransactSQL

88

Funções Matemáticas

ABS

Retorna o valor absoluto de uma expressão numérica.

ABS(exprN)

ACOS

Retorna o ângulo (em radianos) cujo co-seno é exprF.

ACOS(exprF)

ASIN

Retorna o ângulo (em radianos) cujo seno é exprF.

ASIN(exprF)

ATAN

Retorna o ângulo (em radianos) cuja tangente é exprF.

ATAN(exprF)

ATN2

Retorna o ângulo (em radianos) cuja tangente está entreexprF1 e exprF2.

ATN2(exprF1, exprF2)

CEILING

Retorna o menor número inteiro maior ou igual a exprN.

CEILING(exprN)

COS

Retorna o co-seno de exprF.

COS(exprF)

COT

Retorna a cotangente de exprF.

COT(exprF)

DEGREES

Converte de radianos para graus.

DEGREES(exprN)

Funções Matemáticas

Page 90: Guia de Consulta Rapida - SQLServer e TransactSQL

89

EXP

Retorna eexprF (e=2.71828).

EXP(exprF)

FLOOR

Retorna o maior número inteiro menor ou igual a exprN.

FLOOR(exprN)

LOG

Retorna o logaritmo natural de uma expressão numérica.

LOG(exprF)

LOG10

Retorna o logaritmo base 10 de uma expressão numérica.

LOG10(exprF)

PI

Retorna o valor da constante Pi (3.141592653589793).

PI( )

POWER

Retorna o valor de uma expressão numérica elevada àpotência especificada.

POWER(exprN, y)

RADIANS

Retorna o valor em radianos, dada uma expressãonumérica em graus.

RADIANS(exprN)

RAND

Retorna um número aleatório entre 0 e 1.

RAND([semente])

Argumento Descrição

semente Valor inicial.

Funções Matemáticas

Page 91: Guia de Consulta Rapida - SQLServer e TransactSQL

90

ROUND

Retorna uma expressão numérica arredondada para ocomprimento (ou precisão) especificado.

ROUND(exprN, length)

SIGN

Retorna um número indicando o sinal de uma expressãonumérica.

Valor Retornado

1 A expressão é positiva.

0 A expressão é 0.

-1 A expressão é negativa.

SIGN(exprN)

SIN

Retorna o seno de uma expressão numérica.

SIN(exprF)

SQRT

Retorna a raiz quadrada de uma expressão numérica.

SQRT(exprF)

SQUARE

Retorna o quadrado de uma expressão numérica.

SQUARE(exprF)

TAN

Retorna a tangente de uma expressão numérica.

TAN(exprF)

Funções Matemáticas

Page 92: Guia de Consulta Rapida - SQLServer e TransactSQL

91

Funções Metadata

COL_LENGTH

Retorna a largura (em bytes) de uma coluna de umatabela. Esse valor muda de acordo com o tipo de dados,pois os tipos CHAR e VARCHAR podem chegar a 255bytes, enquanto os numéricos dependendo da precisãochegam no máximo a 8 bytes.

COL_LENGTH('tabela', 'coluna')

COL_NAME

Retorna o nome de uma coluna, fornecidos os númerosde identificação da tabela e da coluna.

COL_NAME(id_tabela, id_coluna)

COLUMNPROPERTY

Retorna informações sobre uma coluna ou parâmetro deprocedure. Os valores retornados são: 1=True, 0=False,Null=entrada inválida.

COLUMNPROPERTY(id, coluna, propriedade)

Argumento Descrição

id Identificador da tabela ou procedure.

coluna Nome da coluna ou parâmetro.

propriedade

AllowsNull Permite valores null.

IsComputed Coluna calculada.

IsCursorType Parâmetro de procedure com tipo de dadosCURSOR.

IsFulltextIndexedA coluna pertence a um índice de texto.

IsIdentity A coluna possui a propriedade IDENTITY(auto-incremento).

IsIdNotForRepl A coluna verifica a definiçãoIDENTITY_INSERT.

IsOutParam Parâmetro de saída de uma procedure.

IsRowGuidCol A coluna tem o tipo de dado uniqueidentifiere está definida com a priopriedadeROWGUIDCOL.

Precision Precisão do tipo de dado da coluna ouparâmetro de procedure.

Scale Escala do tipo de dados da coluna ouparâmetro da procedure.

UsesAnsiTrim ANSI padding estava configurado com ONquando a tabela foi criada.

Funções Metadata

Page 93: Guia de Consulta Rapida - SQLServer e TransactSQL

92

DATABASEPROPERTY

Retorna informações sobre as propriedades de um bancode dados. Os valores retornados são: 1=True, 0=False,Null=Entrada inválida.

DATABASEPROPERTY(nome_bd, propriedade)

Argumento Descrição

nome_bd Nome do banco de dados.

propriedade Propriedade cujas informações serãoretornadas

IsAnsiNullDefault Segue as regras SQL-92 referentes avalores nulos.

IsAnsiNullsEnabled Comparações com valores nulos,sempre retornam NULL.

IsAnsiWarningsEnabled Mensagens de erro são mostradassempre que uma condição de erroocorrer.

IsAutoClose O banco de dados é fechado e liberaos recursos automaticamente quandonenhum usuário estiver utilizando.

IsAutoShrink Os arquivos do banco de dados sãocandidatos à redução automática detamanho periodicamente.

IsAutoUpdateStatistics A opção de atualização automáticadas estatísticas do banco de dadosestá habilitada.

IsBulkCopy O banco de dados permite operaçõesque não são gravadas no log detransações.

IsCloseCursorsOnCommitEnabled

Os cursores são fechados quando atransação é encerrada com umCOMMIT.

IsDboOnly O banco de dados está no modo deacesso DBO-only.

IsDetached O banco de dados foi desmontado(separado do servidor) por umaoperação de detach.

IsEmergencyMode O modo de emergência está habilitado,permitindo acesso a banco de dadoscom status Suspect.

IsFulltextEnabled O banco de dados está habilitado paraindexação de texto.

IsInLoad O banco de dados ainda está noprocesso de inicialização.

Funções Metadata

Page 94: Guia de Consulta Rapida - SQLServer e TransactSQL

93

IsInRecovery O banco de dados está no processo derecuperação (recovery).

IsInStandBy O banco de dados está ativo somentepara leitura (read-only), mas permiterestauração de backup do log.

IsLocalCursorsDefault As declarações de cursores serãosempre locais.

IsNotRecovered O banco de dados falhou durante oprocesso de recuperação.

IsNullConcat Permite concatenação de valores nulos(Null).

IsOffline O banco de dados não está ativo.

IsQuotedIdentifiersEnabled

Os identificadores de objetos podemser colocados entre aspas duplas (“).

IsReadOnly O banco de dados está ativo somentepara leitura (read-only).

IsRecursiveTriggersEnabled

Permite o aninhamento de execuçõesde triggers.

IsShutDown O banco de dados com problemasdurante a inicialização do servidor.

IsSingleUser Banco de dados em modo SINGLE-USER, o que permite somente umusuário.

IsSuspect Banco de dados marcardo comosuspeito.

IsTruncLog Banco de dados apaga o log detransações nos processos deCHECKPOINT.

Version Versão do SQL Server utilizada para acriação do banco de dados.

DB_ID

Retorna o número de identificação do banco de dados.

DB_ID(['nome_bd'])

Argumento Descrição

nome_bd Nome do banco de dados. Se não especificado,retornará o ID do banco de dados corrente.

DB_NAME

Retorna o nome do banco de dados.

DB_NAME(id_bd)

Funções Metadata

Page 95: Guia de Consulta Rapida - SQLServer e TransactSQL

94

Argumento Descrição

id_bd ID do banco de dados a ser retornado. Se nãoespecificado, retornará o nome do banco de dadoscorrente.

FILE_ID

Retorna o número de identificação de um arquivo paraum nome lógico informado.

FILE_ID('nome_arq')

FILE_NAME

Retorna o nome lógico de um arquivo.

FILE_NAME(id_arquivo)

Argumento Descrição

id_arquivo Número de identificação do arquivo.

FILEGROUP_ID

Retorna o número de identificação de um grupo dearquivos.

FILEGROUP_ID('nome_grupo_arq')

Argumento Descrição

nome_grupo_arq Nome do grupo de arquivos.

FILEGROUP_NAME

Retorna o nome de um grupo de arquivos.

FILEGROUP_NAME(id_grupo_arq)

Argumento Descrição

id_grupo_arq Número de identificação do grupo de arquivos.

FILEGROUPPROPERTY

Retorna o valor de uma propriedade específica de umgrupo de arquivos. Os valores retornados são: 1=True,0=False, Null=Entrada inválida.

FILEGROUPPROPERTY(nome_grupo_arq, propriedade)

Argumento Descrição

nome_grupo_arq Nome do grupo de arquivos.

propriedade Propriedade do grupo de arquivos.

Funções Metadata

Page 96: Guia de Consulta Rapida - SQLServer e TransactSQL

95

FILEPROPERTY

Retorna informações sobre as propriedades de umarquivo.

FILEPROPERTY(nome_arq, propriedade)

Argumento Descrição

nome_arq Nome do arquivo.

propriedade Nome da propriedade.

IsReadOnly Grupo de arquivos somente para leitura.

IsUserDefinedFG Grupo de arquivos criado pelo usuário.

IsDefault Grupo de arquivos é o default.

FULLTEXTCATALOGPROPERTY

Retorna informações sobre catálogos de índices texto.

FULLTEXTCATALOGPROPERTY(nome_catálogo, propriedade)

Argumento Descrição

nome_catálogo Nome do catálogo.

propriedade Nome da propriedade.

PopulateStatus Status do preenchimento do catálogo.

0 = Parado.

1 = Preenchimento em andamento.

2 = Interrompido.

3 = Acelerado.

4 = Em recuperação.

5 = Desligado.

6 = Preenchimento incremental emandamento.

7 = Atualizando índice.

ItemCount Número de itens indexados no catálogo.

IndexSize Tamanho do índice de texto (MB).

UniqueKeyCount Número de palavras únicas (chaves) quefazem parte do índice de texto.

LogSize Tamanho (bytes) do conjunto de logs de errosassociado ao serviço Microsoft SearchService.

PopulateCompletionAge

Diferença (segundos) entre a última vez queo índice foi preenchido e 01/01/1990 00:00:00.

Funções Metadata

Page 97: Guia de Consulta Rapida - SQLServer e TransactSQL

96

FULLTEXTSERVICEPROPERTY

Retorna informações das propriedades do serviço deindexação de textos (Microsoft Search Service).

FULLTEXTSERVICEPROPERTY(propriedade)

Argumento Descrição

propriedade Nome da propriedade.

ResourceUsage 1 (background) até 5 (serviço dedicado).

ConnectTimeout Tempo (em segundos) que o MicrosoftSearch Service aguardará durante astentativas de conexão com o SQL Server.

IsFulltextInstalled Indica se o Microsoft Search Service estáinstalado (1) ou não (0).

INDEX_COL

Retorna o nome da coluna que pertence ao índiceindicado.

INDEX_COL('tabela', id_índice, id_chave)

Argumento Descrição

tabela Nome da tabela.

id_índice Número de identificação do índice.

id_chave Número de identificação da chave (1 a 16).

INDEXPROPERTY

Retorna informações sobre as propriedades dos índices.

INDEXPROPERTY(id_tabela, nome_indice, propriedade)

Argumento Descrição

id_tabela Número de identificaçaõ da tabela, que podeser obtido com a função Object_id().

nome_índice Nome do índice.

propriedade Nome da propriedade, conforme lista abaixo:

IndexDepth Número de níveis do índice.

IsAutoStatistics Indice criado (1) ou não (0) pela opção auto

create statistics da procedure sp_dboption.

IsClustered Índice é clusterizado (1) ou não (0).

IsStatistics Índice criado (1) ou não (0) pelo comandoCREATE STATISTICS ou pela opção auto

create statistics da procedure sp_dboption.

IsUnique Índice com chave única (1) ou não (0).

IndexFillFactor O índice possui a própria especificação dofator de preenchimento (1) ou não (0).

Funções Metadata

Page 98: Guia de Consulta Rapida - SQLServer e TransactSQL

97

IsPadIndex O índice possui (1) ou não (0) a especificaçãodo espaço a ser ocupado pelos diversosníveis (root, intermediate e leaf).

IsFulltextKey O índice é (1) ou não (0) a chave texto de umatabela.

IsHypothetical O índice é hipotético (1) ou não. Os índiceshipotéticos contêm apenas informaçõesestatísticas e não podem ser acessadosdiretamente.

OBJECT_ID

Retorna o número de identificação de um objeto.

OBJECT_ID('nome_objeto')

OBJECT_NAME

Retorna o nome de um objeto.

OBJECT_NAME(id_objeto)

OBJECTPROPERTY

Retorna informações sobre objetos no banco de dadoscorrente.

OBJECTPROPERTY(id_objeto, propriedade)

@@PROCID

Retorna o identificador (ID) da stored procedure queestá sendo executada no momento.

TYPEPROPERTY

Retorna informações sobre um tipo de dado.

TYPEPROPERTY( tipo, propriedade)

Argumento Descrição

tipo Nome do tipo de dado.

propriedade Tipo de informação a ser retornada:

Precision Precisão do tipo de dados. Retorna aquantidade de dígitos ou caracteres.

Scale Escala. Retorna a quantidade de casasdecimais ou NULL caso o tipo de dados nãoseja numérico.

AllowsNull Indica se o tipo de dados permite (1) ou não(0) valores nulos.

UsesAnsiTrim Indica se a opção ANSI PADDING estavaativa (1) ou não(0) quando o tipo de dados foicriado.

Funções Metadata

Page 99: Guia de Consulta Rapida - SQLServer e TransactSQL

98

Funções de Segurança

IS_MEMBER

Retorna (1) se o usuário corrente pertencer a um grupodo Windows NT ou papel do SQL Server, ou (0) casonão pertença. Se retornar NULL o grupo ou papelinformado não existe.

IS_MEMBER ({'grupo' | 'papel' })

Argumento Descrição

grupo Nome do grupo de usuários do Windows NT noformato Domínio/Grupo.

papel Nome do papel no SQL Server.

IS_SRVROLEMEMBER

Retorna (1) caso o usuário corrente seja membro de umpapel do servidor, ou (0) caso não seja. Se retornarNULL, o papel informado não é válido.

IS_SRVROLEMEMBER ( 'papel' [,'nome_conta'])

Argumento Descrição

papel Nome do papel do servidor. Pode ser: sysadmin,dbcreator, diskadmin, processadmin, serveradmin,setupadmin ou securityadmin.

nome_conta Nome da conta de usuário(login) que se quer verificar.Caso não seja informado, será verificado o usuáriocorrente.

SUSER_ID

Função obsoleta. Mantida para compatibilidade comversões anteriores. Use SUSER_SID.

SUSER_NAME

Função obsoleta. Mantida para compatibilidade comversões anteriores. Use SUSER_SNAME.

SUSER_SID

Retorna o número de identificação de uma conta deusuário (login) no SQL Server.

SUSER_SID(['nome_conta'])

Argumento Descrição

nome_conta Nome da conta do usuário. Caso não seja informado,será retornado o valor correspondente ao usuáriocorrente.

Funções de Segurança

Page 100: Guia de Consulta Rapida - SQLServer e TransactSQL

99

SUSER_SNAME

Retorna o nome de uma conta de usuário, dado o númerode identificação (SID).

SUSER_SNAME([num_identificação])

Argumento Descrição

num_identificação Número de identificação da conta de usuário.Caso não seja informado, utilizará o número deidentificação do usuário corrente.

USER

Variável global que contém o nome do usuário correnteno banco de dados corrente. Pode ser colocado nasdefinições de DEFAULTs.

USER

USER_ID

Retorna o número de identificação de um usuário.

USER_ID(['nome_usuário'])

Funções de Segurança

Page 101: Guia de Consulta Rapida - SQLServer e TransactSQL

100

Funções String

ASCII

Retorna o código ASCII do caractere mais à esquerda deuma expressão string.

ASCII(exprC)

CHAR

Retorna o caractere correspondente a um código ASCII.

CHAR(código)

CHARINDEX

Retorna a posição inicial de um string dentro de outrostring.

CHARINDEX('padrão', expressão)

Argumento Descrição

padrão Expressão do tipo char.

expressão Usualmente é o nome de uma coluna, onde deve serpesquisado um determinado padrão.

DIFFERENCE

Retorna um número (0-4) representando a equivalênciaentre os valores retornados pela função SOUNDEX deduas expressões de caracteres. Retorna um valor de 0 a4, sendo 4 a melhor correspondência.

DIFFERENCE(exprC1, exprC2)

LEFT

Retorna um substring com n caracteres à direita de umaexpressão string.

LEFT(exprC, n)

LEN

Retorna o número de caracteres de uma expressãostring.

LEN(exprC)

LOWER

Converte caracteres maiúsculos em minúsculos.

LOWER(exprC)

Funções String

Page 102: Guia de Consulta Rapida - SQLServer e TransactSQL

101

LTRIM

Retorna uma cópia de um string sem os espaços embranco iniciais.

LTRIM(exprC)

NCHAR

Retorna o caractere Unicode correspondente ao códigoespecificado.

NCHAR(código)

PATINDEX

Retorna a posição inicial da primeira ocorrência de umpadrão em uma expressão especificada, ou zeros se opadrão não for especificado.

PATINDEX('%padrão%', expressão)

QUOTENAME

Retorna um string Unicode com delimitadoresadicionados para tornar um identificador válido.

QUOTENAME('string' [,'delimitador'])

REPLACE

Substitui em exprC1, as ocorrências de exprC2 porexprC3.

REPLACE(exprC1, exprC2, exprC3)

REPLICATE

Repete uma expressão de caracteres um númeroespecificado de vezes.

REPLICATE(exprC, exprI)

REVERSE

Retorna o inverso de uma expressão de caracteres.

REVERSE(exprC)

RIGHT

Retorna um substring com n caracteres à direita de umaexpressão string.

RIGHT(exprC, n)

Funções String

Page 103: Guia de Consulta Rapida - SQLServer e TransactSQL

102

RTRIM

Retorna uma cópia de uma expressão string sem osespaços em branco finais.

RTRIM(exprC)

SOUNDEX

Retorna um código de quatro caracteres para avaliar asimilaridade entre dois strings.

SOUNDEX(exprC)

SPACE

Retorna um string com o número especificado de espaçosem branco. Se o número for negativo, retornará umstring null.

SPACE(integer_expr)

STR

Converte uma expressão numérica em caracteres.

STR(exprF [, tamanho [, decimais]])

STUFF

Substitui n caracteres da string exprC1 pela string parcialexprC2 a partir da posição início.

STUFF(exprC1, início, n, exprC2)

SUBSTRING

Retorna parte de uma expressão string.

SUBSTRING(exprC, início, tamanho)

UNICODE

Retorna um valor inteiro, definido no padrão Unicode,para o primeiro caractere de um expressão nchar ounvarchar.

UNICODE(expr)

UPPER

Converte caracteres minúsculos em maiúsculos.

UPPER(char_expr)

Funções String

Page 104: Guia de Consulta Rapida - SQLServer e TransactSQL

103

Funções do Sistema

APP_NAME

Retorna o nome da aplicação para a sessão corrente.

APP_NAME()

CAST

Converte uma expressão de um tipo para outro.

CAST(expr AS tipo)

COALESCE

Retorna a primeira expressão não-nula da lista de valores.

COALESCE (expressão1, expressão2, ... expressãoN)

CONVERT

Converte uma expressão de um tipo para outro. Similarà função CAST.

CONVERT(tipo[(tamanho)], expr [,estilo])

CURRENT_TIMESTAMP

Retorna a data e hora correntes. Equivalente à funçãoGETDATE().

CURRENT_TIMESTAMP

CURRENT_USER

Retorna o nome do usuário corrente. Equivalente àfunção USER_NAME().

CURRENT_USER

DATALENGTH

Retorna o número de bytes usados para representar umaexpressão.

DATALENGTH (expr)

@@ERROR

Retorna o número do erro do último comando Transact-SQL executado.

Funções do Sistema

Page 105: Guia de Consulta Rapida - SQLServer e TransactSQL

104

FORMATMESSAGE

Constrói uma mensagem a partir de uma mensagemexistente em sysmessages.

FORMATMESSAGE(num_mens, parâmetro1 [,...])

GETANSINULL

Retorna a nulidade default para o banco de dados.

GETANSINULL(['nome_bd'])

HOST_ID

Retorna o número de identificação da estação de trabalhoda conexão corrente.

HOST_ID ( )

HOST_NAME

Retorna o nome da estação de trabalho (workstation) daconexão corrente.

HOST_NAME ( )

IDENT_INCR

Retorna o valor de incremento (retornado comonumeric(@@MAXPRECISION,0)) especificadodurante a criação de coluna de auto-incremento(IDENTITY).

IDENT_INCR ('tabela ou view')

IDENT_SEED

Retorna o valor de origem (retornado comonumeric(@@MAXPRECISION,0)) especificadodurante a criação da coluna de auto-incremento(IDENTITY).

IDENT_SEED ('tabela ou view')

@@IDENTITY

Retorna o último valor inserido na coluna com apropriedade IDENTITY (auto-incremento).

ISDATE

Retornará 1 se a expressão for uma data válida; casocontrário, retornará 0.

ISDATE(expr)

Funções do Sistema

Page 106: Guia de Consulta Rapida - SQLServer e TransactSQL

105

ISNULL

Verifica se o valor da expressão é null. Em casoafirmativo, substitui o valor null pelo valor especificado.

ISNULL(expr, valor)

ISNUMERIC

Retornará 1 se a expressão for um tipo numérico válido;caso contrário, retornará 0.

ISNUMERIC(expr)

NEWID

Cria um valor único do tipo uniqueidentifier.

NEWID()

NULLIF

Retornará um valor null se duas expressões foremequivalentes.

NULLIF(expr1, expr2)

PARSENAME

Retorna uma parte especificada de um nome de objeto.

PARSENAME(nome_objeto, parte)

Argumento Descrição

nome_objeto Nome do objeto.

parte

1 Nome do objeto.

2 Nome do proprietário.

3 Nome do banco de dados.

4 Nome do servidor de banco de dados.

PERMISSION

Retorna um valor que indica o comando, objeto oupermissões da coluna para o usuário corrente.

PERMISSION(id_objeto [,'coluna']])

@@ROWCOUNT

Retorna o número de linhas afetadas pelo últimocomando.

Funções do Sistema

Page 107: Guia de Consulta Rapida - SQLServer e TransactSQL

106

SESSION_USER

Retornará um valor para o nome do usuário corrente,quando nenhum valor padrão tiver sido especificado.

STATS_DATE

Retorna a data de quando as informações estatísticaspara o índice especificado foram atualizadas pela últimavez.

STATS_DATE(id_tabela, id_índice)

Argumento Descrição

id_tabela Identificador da tabela, obtido com a funçãoOBJECT_ID().

id_índice Identificador do índice. O primeiro índice databela é 1, o segundo 2, e assim por diante.

SYSTEM_USER

Variável global que contém o nome do usuário correnteno SQL Server. Pode ser colocada nas definições deDEFAULTs.

SYSTEM_USER

@@TRANCOUNT

Retorna a quantidade de transações ativas na conexãocorrente.

USER_NAME

Retorna o nome do usuário com o identificadorespecificado.

USER_NAME([id_usuário])

Funções do Sistema

Page 108: Guia de Consulta Rapida - SQLServer e TransactSQL

107

Funções de Estatística do Sistema

@@CPU_BUSY

Retorna o tempo (em milissegundos) de processamentoda CPU desde que o SQL Server foi inicializado.

@@IDLE

Retorna o tempo (em milissegundos) que a CPU ficouinativa desde que o SQL Server foi inicializado.

@@IO_BUSY

Retorna o tempo (em milissegundos) que a CPU gastoufazendo operações de I/O desde que o SQL Server foiinicializado.

@@PACK_RECEIVED

Retorna o número de pacotes de rede recebidos desdeque o SQL Server foi inicializado.

@@PACK_SENT

Retorna o número de pacotes de rede enviados desdeque o SQL Server foi inicializado.

@@PACKET_ERRORS

Retorna o número de erros na leitura ou envio de pacotespela rede desde que o SQL Server foi inicializado.

@@TIMETICKS

Retorna o número de microssegundos por tick.

@@TOTAL_ERRORS

Retorna o número de erros de leitura/gravação em discodesde que o SQL Server foi inicializado.

@@TOTAL_READ

Retorna o número de leituras no disco desde que o SQLServer foi inicializado.

@@TOTAL_WRITE

Retorna o número de gravações em disco desde que oSQL Server foi inicializado.

Funções de Estatística do Sistema

Page 109: Guia de Consulta Rapida - SQLServer e TransactSQL

108

Funções de Texto e Imagem

TEXTPTR

Retorna o valor do ponteiro de texto em formatovarbinary. O ponteiro de texto é verificado para garantirque ele aponte para a primeira página do texto.

TEXTPTR(coluna)

TEXTVALID

Retornará 1 se um ponteiro de texto for válido e 0 se oponteiro for inválido.

TEXTVALID('tabela.coluna', texto_ ptr)

Argumento Descrição

tabela Nome da tabela a ser usada.

coluna Nome da coluna a ser usada.

texto_ptr Ponteiro de texto a ser verificado.

Funções de Texto e Imagem

Page 110: Guia de Consulta Rapida - SQLServer e TransactSQL

109

Operadores

Operadores Aritméticos

+ (adição)

Adiciona dois números.

expressão + expressão

+ (concatenação de strings)

Concatena dois strings.

expressão + expressão

- (subtração)

Subtração.

expressão - expressão

* (multiplicação)

Multiplica duas expressões.

expressão * expressão

/ (divisão)

Divide um número por outro.

dividendo / divisor

% (módulo)

Módulo aritmético (retorna o resto da divisão de inteiros).

dividendo % divisor

Operadores Bitwise

& (Bitwise AND)

Bitwise AND.

expressão & expressão

| (Bitwise OR)

Bitwise OR.

expressão | expressão

^ (Bitwise Exclusive OR)

Bitwise Exclusive OR.

Operadores

Page 111: Guia de Consulta Rapida - SQLServer e TransactSQL

110

Operadores de Comparação

= (igual)

Compara duas expressões.

expressão = expressão

> (maior que)

Maior que.

expressão > expressão

< (menor que)

Menor que.

expressão < expressão

>= (maior ou igual a)

Maior ou igual a.

expressão >= expressão

<= (menor ou igual a)

Menor ou igual a.

expressão <= expressão

<> (diferente)

Diferente.

expressão <> expressão

!= (diferente)

Diferente. Não é padrão SQL-92.

expressão != expressão

!< (não menor que)

Não menor que. Não é padrão SQL-92.

expressão !< expressão

!> (não maior que)

Não maior que. Não é padrão SQL-92.

expressão !> expressão

Operadores

Page 112: Guia de Consulta Rapida - SQLServer e TransactSQL

111

Operadores

Operadores Lógicos

ALL

Compara um valor escalar com um conjunto de valoresde uma única coluna. Retornará TRUE se todas ascomparações forem TRUE.

expressão_escalar operador_comp ALL (subconsulta)

Parâmetro Descrição

expressão_escalar Expressão.

operador_comp Operador de comparação.

subconsulta Uma subconsulta que retorna o resultado deuma coluna. As cláusulas ORDER BY,COMPUTE e INTO não são permitidas.

AND

Retornará TRUE quando as duas expressões lógicasforem TRUE.

exprL1 AND exprL2

ANY

O operador ANY será avaliado como TRUE se oresultado de uma consulta interna contiver pelo menosuma linha que satisfaça a comparação. O mesmo queSOME.

BETWEEN

TRUE se o operando estiver dentro de um intervalo.Para mais detalhes, veja a página 113.

EXISTS

Retornará TRUE se uma subconsulta retornar uma oumais linhas. As cláusulas COMPUTE e INTO não sãopermitidas na subconsulta.

EXISTS subconsulta

IN

Retornará TRUE se o operando for igual a um item dalista de expressões. Para mais detalhes, veja a página 114.

LIKE

Retornará TRUE se o operando tiver correspondênciacom um padrão. Para mais detalhes, veja a página 115.

Page 113: Guia de Consulta Rapida - SQLServer e TransactSQL

112

Operadores

NOT

Reverte o valor de um operador Booleano.

[NOT] exprL

OR

Retornará TRUE se uma das expressões for TRUE.

exprL1 OR exprL2

SOME

O operador SOME será avaliado como TRUE se o resultadode uma consulta interna contiver pelo menos uma linha quesatisfaça a comparação. O mesmo que ANY.

Operadores Unários

+ (positivo)

Operador unário que retorna o valor positivo de umaexpressão numérica.

+expressão_numérica

- (negativo)

Operador unário que retorna o valor negativo de umaexpressão numérica.

-expressão_numérica

~ (Bitwise NOT)

Retorna o complemento de um número.

~ expressão

Níveis de Precedência de Operadores

+ (positivo), - (negativo), ~(Bitwise NOT)

* (Multiplicação), / (Divisão), % (Módulo)

=, >, <, >=, <=, <>, !=, !>, !<

^ (Bitwise Exclusive OR), & (Bitwise AND), | (BitwiseOR)

NOT

AND

ALL, ANY, BETWEEN, IN, LIKE, OR, SOME

= (atribuição)

Page 114: Guia de Consulta Rapida - SQLServer e TransactSQL

113

Operadores

BETWEEN

Determina se o valor de uma expressão está dentro deum intervalo de valores. O operador NOT pode serusado para retornar registros situados fora do intervalo.

expr1 [NOT] BETWEEN expr2 AND expr3

Argumento Descrição

expr1 Expressão que identifica o campo que contém osdados a serem avaliados.

NOT Avalia a condição oposta, isto é, se expr estásituado fora do intervalo definido por expr1 eexpr2.

expr2, expr3 Expressões em relação às quais você desejaavaliar expr1. A cláusula BETWEEN é inclusiva,o que significa que tanto expr2 como expr3 serãoincluídos na comparação. A expr2 pode ser maiorque expr3; entretanto, no ANSI SQL, expr2 precisaser igual ou menor que expr3.

Exemplo 1

Seleciona o nome e salário dos empregados que têmsalário entre 2000 e 7000.

SELECT NomeFunc, Salario

FROM Empreg

WHERE Salario BETWEEN 2000 AND 7000

Exemplo 2

Seleciona os clientes com nome começando com asletras de A a F.

SELECT *

FROM Clientes

WHERE NomeCliente BETWEEN 'A' AND 'F'

Exemplo 3

Seleciona os registros de vendas entre 31/01/1999 e 30/03/1999. Literais do tipo DATETIME devem serdelimitados com os símbolos (#) e devem ser expressossempre na forma MM/DD/AA, independentemente doformato de datas especificado no Control Panel (Painelde Controle) do Windows.

SELECT *

FROM VENDAS

WHERE DataVenda BETWEEN #01/31/1999# AND

#03/30/1999#

Page 115: Guia de Consulta Rapida - SQLServer e TransactSQL

114

Operadores

IN

Verifica se determinado valor faz parte de uma lista devalores.

expressão [NOT] IN (valor1, valor2, ...)

Argumento Descrição

expressão Expressão que identifica o campo que contémos dados a serem avaliados.

NOT Avalia a condição oposta, isto é, se expr nãoestá na lista de valores.

valor1, valor2,... Expressão ou lista de expressões em relaçãoàs quais você deseja avaliar expressão.

Exemplo

Seleciona da tabela Clientes os clientes dos estados doSul do Brasil (PR, SC e RS).

SELECT *

FROM Clientes

WHERE Estado IN ('PR','SC','RS')

Exemplo

Seleciona os funcionários cujo salário seja um dosseguintes valores: 1000, 1500, 2000:

SELECT Salario

FROM Funcionarios

WHERE Salario IN (1000, 1500, 2000)

Page 116: Guia de Consulta Rapida - SQLServer e TransactSQL

115

Operadores

LIKE

Permite comparar uma expressão a um padrão. Distingueminúsculas de maiúsculas na comparação. O predicadoé usado exclusivamente nas comparações entre strings.

expressão [NOT] LIKE 'padrão'

Item Significado

expressão Expressão SQL (ou seja, o valor de um campo).

padrão Seqüência de caracteres em relação à qualexpressão será comparado. Empregam acoincidência de caracteres curinga e listas defaixas de variação de caracteres. Podem serutilizados os caracteres curinga abaixo:

% Qualquer string de zero ou mais caracteres.

_ Qualquer caractere único.

# Qualquer dígito isolado (0-9).

[lista] Caractere contido em lista. O caractere "-" éutilizado para indicar um intervalo de caracteresANSI; por exemplo: [0-9] seleciona os númerosde 0 a 9. A faixa de variação dos caracteres temde ser definida em ordem ascendente (porexemplo: a-z, e não z-a).

[^lista] Caractere isolado não contido em lista.

Exemplos

'57%' Encontra qualquer string que começa com 57.

'%57' Encontra qualquer string que termina com 57.

'57_' Encontra qualquer string com 3 caracteres quecomece com 57.

571## Encontra qualquer número entre 57100 e 57199.

'COL[IU]NA' Encontra 'COLINA' ou 'COLUNA'.

'DR[^O]GA' Encontra qualquer combinação, exceto DROGA.Encontra DRAGA, DREGA, DRZGA, etc.

'P[A-C]###' Encontra PA000-PA999, PB000-PB999, PC000-PC999.

'P[^A-C]###' Encontra todos exceto PA até PC: PD000-PZ999.

Exemplo:

SELECT *

FROM Funcionarios

WHERE Sobrenome LIKE '[A-D]*';

Retorna uma lista de funcionários cujos nomes

começam com as letras de A a D.

Page 117: Guia de Consulta Rapida - SQLServer e TransactSQL

116

Tipos de Dados do SQL Server

Inteiros (integer)

Bit

Representa o tipo booleano com dois valores possíveis: 1e 0.

Int

Representa valores inteiros, que possam ser armazenadosem 4 bytes.Tamanho: 4 bytesIntervalo: -2,147,483,648 a 2,147,483,647

Smallint

Representa valores inteiros, que possam ser armazenadosem 2 bytes.Espaço ocupado: 2 bytesIntervalo: -32768 a 32767

Tinyint

Representa valores inteiros não-negativos, que possamser armazenados em um byte.Espaço ocupado: 1 byteIntervalo: 0 a 255

Numéricos

Decimal(p,[s])

Dados decimais, onde podem ser definidas precisão eescalaIntervalo: -10^38 -1 a 10^38 -1.

Numeric(p,[s])

Sinônimo de decimal.

Dados Monetários

Money

Usado para representar valores monetários.Espaço ocupado: 8 bytesIntervalo: -922,337,203,685,477.5808 a+922,337,203,685,477.5807

Smallmoney

Corresponde ao tipo money, mas é armazenado em 4bytes.Espaço ocupado: 4 bytesIntervalo: -214,748.3648 a +214,748.364

Tipos de Dados

Page 118: Guia de Consulta Rapida - SQLServer e TransactSQL

117

Numéricos Aproximados

Float[(p)]

Representa valores em ponto flutuante como REAL.Intervalo: -1.79E + 308 a 1.79E + 308.

Real

Usado para valores em ponto flutuante.Intervalo: -3.40E + 38 a 3.40E + 38.

Datetime and Smalldatetime

Datetime

Especifica uma data e uma hora, com cada valorarmazenado como um inteiro, em 4 bytes. Datas nointervalo de 01/01/1753 a 31/12/9999. Possui precisão demilissegundos.

Smalldatetime

Especifica uma data e uma hora, com cada valor sendoarmazenado como um inteiro, em 2 bytes. Datas nointervalo de 01/01/1900 a 06/06/2079. Possui precisão deminutos.

Cursor

Permite a criação de uma variável de cursor em uma storedprocedure.

Timestamp

Número único no banco de dados. Este tipo de dado éutilizado para garantir que duas pessoas não façamalterações ao mesmo tempo na mesma linha de umatabela.

Uniqueidentifier

É um número de identificação exclusivo armazenadocomo um string binário de 16 bytes (GUID).

Strings de Caracteres

Char[(n)]

Define um string com tamanho fixo, com no máximo 8000caracteres.

Varchar[(n)]

Define um string com tamanho variável, com no máximo8000 caracteres.

Text[(n)]

Define um string de tamanho fixo de até 2^31 - 1(2,147,483,647) caracteres.

Tipos de Dados

Page 119: Guia de Consulta Rapida - SQLServer e TransactSQL

118

Strings de Caracteres Unicode

Nchar[(n)]

Define um string de caracteres Unicode de tamanho fixo,com no máximo 4000 caracteres.

Nvarchar[(n)]

Define um string de caracteres Unicode de tamanhovariável, com no máximo 4000 caracteres.

Ntext[(n)]

Define um string de caracteres Unicode de tamanhovariável, com no máximo 2^30 - 1 (1,073,741,823)caracteres.

Strings Binários

Binary[(n)]

Define um string de bit de comprimento fixo, com n bytes(máximo=8000 bytes).

Varbinary[(n)]

Define um string de bit de comprimento variável com bbytes (máximo=8000 bytes).

Image[(n)]

Define um string de bit de comprimento fixo, com tamanhomáximo de 2^31 - 1 (2,147,483,647) bytes.

Sinônimos

Tipos de dados sinônimos para compatibilidade SQL-92.

Sinônimo Equivalente no SQL Serverbinary varying varbinary

char varying varchar

character char

character char(1)

character(n) char(n)

character varying(n) varchar(n)

dec decimal

double precision float

float[(n)] para n = 1-7 real

float[(n)] para n = 8-15 float

integer int

national character(n) nchar(n)

national char(n) nchar(n)

national character varying(n) nvarchar(n)

national char varying(n) nvarchar(n)

national text ntext

numeric decimal

Tipos de Dados

Page 120: Guia de Consulta Rapida - SQLServer e TransactSQL

119

Exemplos de Constantes

String

'Catanduva''O''Reilly'

Unicode

N'José'

Binárias

0x12Ef0x69048AEFDD010E

Datetime

'Abril 24, 2000''24 Abril, 2000''04/24/2000''11:45:24''02:20 PM'

Inteiras

18942

Decimais

1894.12042.0

Float e Real

101.5E50.5E-2

Money

$12$542023.14

Uniqueidentifier

'6F9619FF-8B86-D011-B42D-00C04FC964FF'

Identificadores do SQL Server

Os identificadores podem ter até 128 caracteres, incluindoletras, os símbolos (_, @ ou #) e números. As regras paranomes de identificadores são as seguintes:• O primeiro caractere deve ser uma letra ou os seguintes

símbolos: @, #, ou _ (sublinhado). Nomes deidentificadores com espaços em branco no nome, devemser colocados entre colchetes.

Nomes de identificadores começando com os símbolos @,# e ## têm significado especial:• @ identifica um parâmetro ou variável local.• # identifica uma procedure ou tabela temporária.• ## identifica um objeto temporário global.

Constantes e Identificadores

Page 121: Guia de Consulta Rapida - SQLServer e TransactSQL

120

ADD

ALL

ALTER

AND

ANY

AS

ASC

AUTHORIZATION

AVG

BACKUP

BEGIN

BETWEEN

BREAK

BROWSE

BULK

BY

CASCADE

CASE

CHECK

CHECKPOINT

CLOSE

CLUSTERED

COALESCE

COLUMN

COMMIT

COMMITTED

COMPUTE

CONFIRM

CONSTRAINT

CONTAINS

CONTAINSTABLE

CONTINUE

CONTROLROW

CONVERT

COUNT

CREATE

CROSS

CURRENT

CURRENT_DATE

CURRENT_TIME

CURRENT_TIMESTAMP

CURRENT_USER

CURSOR

DATABASE

DBCC

DEALLOCATE

DECLARE

DEFAULT

DELETE

DENY

DESC

DISK

DISTINCT

DISTRIBUTED

DOUBLE

DROP

DUMMY

DUMP

ELSE

END

ERRLVL

ERROREXIT

ESCAPE

EXCEPT

EXEC

EXECUTE

EXISTS

EXIT

FETCH

FILE

FILLFACTOR

FLOPPY

FOR

FOREIGN

FREETEXT

FREETEXTTABLE

FROM

FULL

GOTO

GRANT

GROUP

HAVING

HOLDLOCK

IDENTITY

IDENTITY_INSERT

IDENTITYCOL

IF

IN

INDEX

INNER

INSERT

INTERSECT

INTO

IS

ISOLATION

JOIN

KEY

KILL

LEFT

LEVEL

LIKE

LINENO

LOAD

MAX

MIN

MIRROREXIT

NATIONAL

NOCHECK

NONCLUSTERED

NOT

NULL

NULLIF

OF

OFF

OFFSETS

ON

ONCE

ONLY

OPEN

OPENDATASOURCE

OPENQUERY

OPENROWSET

OPTION

OR

ORDER

OUTER

OVER

PERCENT

PERM

PERMANENT

PIPE

PLAN

PRECISION

PREPARE

PRIMARY

PRINT

PRIVILEGES

PROC

PROCEDURE

PROCESSEXIT

PUBLIC

RAISERROR

READ

READTEXT

RECONFIGURE

REFERENCES

REPEATABLE

REPLICATION

RESTORE

RESTRICT

RETURN

REVOKE

RIGHT

ROLLBACK

ROWCOUNT

ROWGUIDCOL

RULE

SAVE

SCHEMA

SELECT

SERIALIZABLE

SESSION_USER

SET

SETUSER

SHUTDOWN

SOME

STATISTICS

SUM

SYSTEM_USER

TABLE

TAPE

TEMP

TEMPORARY

TEXTSIZE

THEN

TO

TOP

TRAN

TRANSACTION

TRIGGER

TRUNCATE

TSEQUAL

UNCOMMITTED

UNION

UNIQUE

UPDATE

UPDATETEXT

USE

USER

VALUES

VARYING

VIEW

WAITFOR

WHEN

WHERE

WHILE

WITH

WORK

WRITETEXT

Palavras-reservadas do Transact-SQL

Palavras-reservadas

Page 122: Guia de Consulta Rapida - SQLServer e TransactSQL

121

Informações Adicionais

Site Oficial do SQL Server 7

Você pode conseguir informações mais atualizadas sobre oSQL Server no site da Microsoft em:

http://www.microsoft.com/sql/

Notação Utilizada neste Guia

Convenção Significado

itálico Representa nomes de bancos de dados,nomes de tabelas, nomes de colunas evalores que devem ser fornecidos pelousuário.

[ ] Identifica valores opcionais na sintaxe,que podem ou não ser fornecidos pelousuário. Digite somente a informaçãodentro dos parênteses; não digite osparênteses.

{ } Identifica itens requeridos na sintaxe.Digite somente a informação dentro doscolchetes; não digite os colchetes.

| (barra vertical) Indica que deve ser escolhida uma dasopções dentro dos colchetes.

... (elipses) Indica que o item prévio da sintaxe podeser repetido.

Novatec na Internet

Conheça o site da Novatec Editora

www.novateceditora.com.br

� Veja a relação de nossas publicações;

� Conheça os últimos lançamentos;

� Adquira nossas publicações através da Internet;

� Cadastre-se para ser informado das novidades da Novatec;

� Faça o download (parcial) dos Guias;

� E muito mais.

E-mail: [email protected]

Page 123: Guia de Consulta Rapida - SQLServer e TransactSQL

122

Índice

Símbolos!< 110

!> 110

% 109, 115

* 109

+ 109

- 109

-- 5

/ 109

/* ...*/ 5

< 110

<= 110

<> 110

= 110

> 110

>= 110

@@CONNECTIONS 83

@@CPU_BUSY 107

@@CURSOR_ROWS 85

@@DATEFIRST 83

@@DBTS 83

@@ERROR 103

@@FETCH_STATUS 85

@@IDENTITY 104

@@IDLE 107

@@IO_BUSY 107

@@LANGID 83

@@LANGUAGE 83

@@LOCK_TIMEOUT 83

@@MAX_CONNECTIONS 83

@@MAX_PRECISION 83

@@NESTLEVEL 83

@@OPTIONS 84

@@PACK_RECEIVED 107

@@PACK_SENT 107

@@PACKET_ERRORS 107

@@PROCID 97

@@REMSERVER 84

@@ROWCOUNT 105

@@SERVERNAME 84

@@SERVICENAME 84

@@SPID 84

@@TEXTSIZE 84

@@TIMETICKS 107

@@TOTAL_ERRORS 107

@@TOTAL_READ 107

@@TOTAL_WRITE 107

@@TRANCOUNT 106

@@VERSION 84

[^lista] 115

[lista] 115

_ 115

AABS 88

ACOS 88

ALL 111

ALTER DATABASE 5

ALTER PROCEDURE 7

Page 124: Guia de Consulta Rapida - SQLServer e TransactSQL

123

Índice

ALTER TABLE 8

ALTER TRIGGER 12

ALTER VIEW 13

AND 111

ANY 111

APP_NAME 103

ASCII 100

ASIN 88

ATAN 88

ATN2 88

AVG 81

BBEGIN DISTRIBUTED TRANSACTION 16

BEGIN TRANSACTION 16

BEGIN...END 16

BETWEEN 111, 113

Binary 118

Bit 116

BREAK 16

BULK INSERT 17

CCASE 19

CAST 103

CEILING 88

CHAR 100

Char 117

CHARINDEX 100

CHECKPOINT 20

CLOSE 20

COALESCE 103

COL_LENGTH 91

COL_NAME 91

COLUMNPROPERTY 91

Comandos 5

Comentários 5

COMMIT TRANSACTION 20

COMMIT WORK 20

CONTINUE 20

CONVERT 103

COS 88

COT 88

COUNT 81

COUNT(*) 81

CREATE DATABASE 21

CREATE DEFAULT 22

CREATE INDEX 22

CREATE PROCEDURE 23

CREATE RULE 24

CREATE SCHEMA 24

CREATE STATISTICS 25

CREATE TABLE 26

CREATE TRIGGER 29

CREATE VIEW 30

CURRENT_TIMESTAMP 103

CURRENT_USER 103

Cursor 117

CURSOR_STATUS 85

Page 125: Guia de Consulta Rapida - SQLServer e TransactSQL

124

Índice

DDATABASEPROPERTY 92

DATALENGTH 103

DATEADD 86

DATEDIFF 86

DATENAME 86

DATEPART 86

Datetime 117

DAY 87

DB_ID 93

DB_NAME 93

DBCC 31

DBCC CHECKALLOC 62

DBCC CHECKCATALOG 62

DBCC CHECKDB 63

DBCC CHECKFILEGROUP 64

DBCC CHECKIDENT 64

DBCC CHECKTABLE 65

DBCC DBREINDEX 66

DBCC DBREPAIR 65

DBCC dllname 66

DBCC HELP 66

DBCC INPUTBUFFER 66

DBCC NEWALLOC 67

DBCC OPENTRAN 67

DBCC OUTPUTBUFFER 67

DBCC PINTABLE 67

DBCC PROCCACHE 68

DBCC ROWLOCK 68

DBCC SHOW_STATISTICS 68

DBCC SHOWCONTIG 68

DBCC SHRINKDATABASE 69

DBCC SHRINKFILE 69

DBCC SQLPERF 70

DBCC TEXTALL 70

DBCC TEXTALLOC 70

DBCC TRACEOFF 70

DBCC TRACEON 71

DBCC TRACESTATUS 71

DBCC UNPINTABLE 71

DBCC UPDATEUSAGE 72

DBCC USEROPTIONS 72

DEALLOCATE 31

Decimal 116

DECLARE 31

DECLARE CURSOR 31

DEGREES 88

DELETE 33

DENY 34

DIFFERENCE 100

DROP DATABASE 35

DROP DEFAULT 35

DROP INDEX 35

DROP PROCEDURE 36

DROP RULE 36

DROP STATISTICS 36

DROP TABLE 36

DROP TRIGGER 36

DROP VIEW 36

DUMP 37

Page 126: Guia de Consulta Rapida - SQLServer e TransactSQL

125

EELSE 40

END 16

EXECUTE 37

EXISTS 111

EXP 89

FFETCH 38

FILE_ID 94

FILE_NAME 94

FILEGROUP_ID 94

FILEGROUP_NAME 94

FILEGROUPPROPERTY 94

FILEPROPERTY 95

Float 117

FLOOR 89

FORMATMESSAGE 104

FROM 52

FULLTEXTCATALOGPROPERTY 95

FULLTEXTSERVICEPROPERTY 96

Funções de Cursor 85

Funções de agregação 81

Funções de Configuração 83

Funções de Data e Hora 86

Funções de Estatística do Sistema 107

Funções de Segurança 98

Funções de Texto e Imagem 108

Funções do Sistema 103

Funções Matemáticas 88

Funções Metadata 91

Funções String 100

GGETANSINULL 104

GETDATE 87

GOTO 38

GRANT 39

GROUPING 81

HHOST_ID 104

HOST_NAME 104

IIDENT_INCR 104

IDENT_SEED 104

IF...ELSE 40

Image 118

IN 111, 114

INDEX_COL 96

INDEXPROPERTY 96

Informações Adicionais 121

INSERT 40

Int 116

IS_MEMBER 98

IS_SRVROLEMEMBER 98

ISDATE 104

ISNULL 105

ISNUMERIC 105

Índice

Page 127: Guia de Consulta Rapida - SQLServer e TransactSQL

126

KKILL 41

LLEFT 100

LEN 100

LIKE 111, 115

LOAD 41

LOG 89

LOG10 89

LOWER 100

LTRIM 101

MMAX 81

MIN 82

Money 116

MONTH 87

NNCHAR 101

Nchar 118

NEWID 105

NOT 112

Notação Utilizada neste Guia 121

Ntext 118

NULLIF 105

Numeric 116

Nvarchar 118

OOBJECT_ID 97

OBJECT_NAME 97

OBJECTPROPERTY 97

OPEN 42

Operadores 109

OPTION 55

OR 112

PPARSENAME 105

PATINDEX 101

PERMISSION 105

PI 89

POWER 89

PRINT 42

QQUOTENAME 101

RRADIANS 89

RAISERROR 42

RAND 89

READTEXT 43

Real 117

RECONFIGURE 43

REPLACE 101

REPLICATE 101

Índice

Page 128: Guia de Consulta Rapida - SQLServer e TransactSQL

127

RESTORE 44

RESTORE FILELISTONLY 46

RESTORE HEADERONLY 46

RESTORE LABELONLY 46

RESTORE VERIFYONLY 47

RETURN 47

REVERSE 101

REVOKE 48

RIGHT 101

ROUND 90

RTRIM 102

SSET 56

SET ANSI_DEFAULTS 73

SET ANSI_NULL_DFLT_OFF 73

SET ANSI_NULL_DFLT_ON 73

SET ANSI_NULLS 73

SET ANSI_PADDING 74

SET ANSI_WARNINGS 74

SET ARITHABORT 74

SET ARITHIGNORE 74

SET CONCAT_NULL_YIELDS_NULL 74

SET CURSOR_CLOSE_ON_COMMIT 74

SET DATEFIRST 75

SET DATEFORMAT 75

SET DEADLOCK_PRIORITY 75

SET DISABLE_DEF_CNST_CHK 75

SET FMTONLY 76

SET FORCEPLAN 76

SET IDENTITY_INSERT 76

SET IMPLICIT_TRANSACTIONS 77

SET LANGUAGE 77

SET LOCK_TIMEOUT 77

SET NOCOUNT 77

SET NOEXEC 77

SET NUMERIC_ROUNDABORT 78

SET OFFSETS 78

SET PARSEONLY 78

SET PROCID 78

SET QUERY_GOVERNOR_COST_LIMIT 78

SET QUOTED_IDENTIFIER 78

SET REMOTE_PROC_TRANSACTIONS 79

SET ROWCOUNT 79

SET SHOWPLAN_ALL 79

SET SHOWPLAN_TEXT 79

SET STATISTICS IO 79

SET STATISTICS PROFILE 79

SET STATISTICS TIME 79

SET TEXTSIZE 80

SET TRANSACTION ISOLATION LEVEL 80

SET XACT_ABORT 80

SETUSER 56

SHUTDOWN 57

SIGN 90

SIN 90

Site Oficial do SQL Server 7 121

Smalldatetime 117

Índice

Page 129: Guia de Consulta Rapida - SQLServer e TransactSQL

128

Smallint 116

Smallmoney 116

SOME 112

SOUNDEX 102

SPACE 102

SQRT 90

SQUARE 90

STATS_DATE 106

STDEV 82

STDEVP 82

STR 102

STUFF 102

SUBSTRING 102

SUM 82

SUSER_ID 98

SUSER_NAME 98

SUSER_SID 98

SUSER_SNAME 99

SYSTEM_USER 106

TTAN 90

Text 117

TEXTPTR 108

TEXTVALID 108

Timestamp 117

Tinyint 116

TRUNCATE TABLE 57

TYPEPROPERTY 97

UUNICODE 102

UNION 55

Uniqueidentifier 117

UPDATE 57

UPDATE STATISTICS 59

UPDATETEXT 59

UPPER 102

USE 60

USER 99

USER_ID 99

USER_NAME 106

VVAR 82

Varbinary 118

Varchar 117

VARP 82

WWAITFOR 60

WHILE 61

WRITETEXT 61

YYEAR 87

Índice

Page 130: Guia de Consulta Rapida - SQLServer e TransactSQL

SQL Server 7

Transact-SQL

Copyright © Novatec Editora Ltda.Fone: (011) 6959-6529Fax: (011) 6950-8869Internet: www.novatec1.com

� Transact-SQL é a versão da linguagemSQL utilizada no SQL Server 7. Possuirecursos extremamente poderosos queestendem a linguagem SQL padrão.

� Este Guia de Consulta Rápida contém umareferência completa dos recursos daTransact-SQL. É indicado tanto paraprogramadores e usuários, quanto paraadministradores de bancos de dados.

� Indispensável para quem quer obter omáximo proveito dos recursos do SQLServer 7, sem perder tempo consultandovolumosos manuais.

� Prático para carregar e consultar.

9 7 8 8 5 8 5 1 8 4 7 0 4

I SBN 85 - 85184 - 70 - 1