Upload
maferocha
View
66
Download
0
Embed Size (px)
Citation preview
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
Novatec Editorawww.novateceditora.com.br
Renato Piques
Rubens Prates
SQL Server 7
Transact-SQL
Guia de Consulta Rápida
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
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
4
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 }
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 ] ]
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}
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.
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]]
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).
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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)
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#
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)
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.
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
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
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
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
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
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
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]
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
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
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
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
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
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
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
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