407
返回总目录 第五部分 ...................................................................................................................... 19 ................................................................................................................ 19 21 TRANSACT-SQL 编程语言参考 ............................................................... 20 加号 ( ) 和字符串连接 ( ) .......................................................................... 21 减号 (-) ........................................................................................................... 22 乘号 (*) ........................................................................................................... 23 除号 ( ) ......................................................................................................... 24 模及通配符(%) ....................................................................................... 25 按位与操作 (&) .............................................................................................. 27 按位或操作 ( ) ............................................................................................. 28 按位异或操作( ^ ...................................................................................... 29 按位非操作 ( ) ............................................................................................. 30 等于 (=) .......................................................................................................... 31 大于 (>) .......................................................................................................... 32

返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

Embed Size (px)

Citation preview

Page 1: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

返 回 总 目 录

目 录

第 五 部 分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 1 9

参 考 素 材 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9

第 2 1 章 T R A N S A C T - S Q L 编 程 语 言 参 考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0

加 号 (+ )和 字 符 串 连 接 (+ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1减 号 ( - ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 2 2乘 号 ( * ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 2 3除 号 (/ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4模 及 通 配 符 ( % ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5按 位 与 操 作 ( & ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7按 位 或 操 作 (| ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8按 位 异 或 操 作 ( ^) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 2 9按 位 非 操 作 (~ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0等 于 ( = ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1大 于 ( > ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2

Page 2: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

小 于 ( < ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2大 于 或 等 于 ( > = ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3小 于 或 等 于 ( < = ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4不 等 于 ( < > ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... 3 5不 小 于 ( ! < ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6不 等 于 ( ! = ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7不 大 于 ( ! > ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7注 释 ( - - ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8注 释 (/ *. . .*/ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9匹 配 的 通 配 符 ([ ] ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0不 匹 配 的 通 配 符 ([ ^] ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 4 2一 个 字 符 匹 配 的 通 配 符 ( _ ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 4 4@ @ c o n n e c t i o n s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5@ @ c p u _ b u s y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6@ @ c u r s o r _ r o w s ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6@ @ d a t e f i r s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 4 7@ @ d b t s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 8@ @ e r r o r .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 4 8@ @ f e t c h _ s t a t u s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 9@ @ i d e n t i t y .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... 5 0@ @ i d l e ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1@ @ i o _ b u s y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 5 1

Page 3: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ L A N G I D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2@ @ l a n g u a g e ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 5 2@ @ l o c k _ t i m e o u t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3@ @ m a x _ c o n n e c t i o n s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5 4@ @ m a x _ p r e c i s i o n ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 5 4@ @ n e s t l e v e l .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 5 5@ @ o p t i o n s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... 5 5@ @ p a c k _ r e c e i v e d ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6@ @ p a c k _ s e n t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6@ @ p a c k e t _ e r r o r s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 5 7@ @ p r o c i d ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 5 7@ @ r e m s e r v e r .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7@ @ r o w c o u n t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8@ @ s e r v e r n a m e... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8@ @ s e r v i c e n a m e ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 9@ @ s p i d .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 9@ @ t e x t s i z e .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... 5 9@ @ t i m e t i c k s ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 0@ @ t o t a l _ e r r o r s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 0@ @ t o t a l _ r e a d .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1@ @ t o t a l _ w r i t e .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1@ @ t r a n c o u n t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2

Page 4: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ v e r s i o n ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... 6 2A B S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3A C O S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 6 3A L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4A L T E R D A T A B A S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5A L T E R P R O C E D U R E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 8A L T E R T A B L E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 0A L T E R T R I G G E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1A L T E R V I E W .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4A N D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 8 6A N Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 8 7A P P _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 8 8A S C I I .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 8 9A S I N ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 0A T A N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 9 1A T N 2 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1A V G .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 9 2B A C K U P ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3B E G I N . . . E N D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 4B E G I N D I S T R I B U T E D T R A N S A C T I O N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 5B E G I N T R A N S A C T I O N ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 6B E T W E E N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1 0 7

Page 5: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

b i n a r y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 1 0 8bi t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 8B R E A K .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 9B U L K I N S E R T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 0C A S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 1 1 4C A S T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 1 1 6C E I L I N G ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 7字 符 数 据 类 型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 8C H A R 字 符 串 函 数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 9C H A R I N D E X 字 符 串 函 数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 1 2 0C H E C K P O I N T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 1C L O S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 1 2 2C O A L E S C E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3C O L _ L E N G T H .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 4C O L _ N A M E.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 5C O L U M N P R O P E R T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 5C O M M I T T R A N S[ A C T I O N] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 7C O M M I T [ W O R K ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 8C O N T A I N S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 9C O N T A I N S T A B L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 4C O N T I N U E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 7C O N V E R T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 7

Page 6: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C O S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 0C O T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 1 4 0C O U N T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1C R E A T E D A T A B A S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 2C R E A T E D E F A U L T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 1 4 7C R E A T E I N D E X .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 8C R E A T E P R O C E D U R E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 1 5 3C R E A T E R U L E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 7C R E A T E S C H E M A .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 8C R E A T E T A B L E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 0C R E A T E T R I G G E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 1 6 7C R E A T E V I E W .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 0C U R R E N T _ T I M E S T A M P ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 2C U R R E N T _ U S E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 1 7 3游 标 数 据 类 型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 4C U R S O R _ S T A T U S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 4c u r s o r s .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 5D A T A B A S E P R O P E R T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 1 7 6数 据 类 型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 8D A T A L E N G T H .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 4D A T E A D D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1 8 5日 期 函 数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 6

Page 7: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D A T E D I F F ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1 8 7D A T E N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 8D A T E P A R T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1 8 9D A Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 1 9 0D B _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 0D B _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1 9 1D B C C C H E C K A L L O C ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 1 9 2D B C C C H E C K C A T A L O G .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 3D B C C C H E C K D B .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 1 9 4D B C C C H E C K F I L E G R O U P ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 1 9 6D B C C C H E C K I D E N T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 7D B C C C H E C K T A B L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 1 9 7D B C C D B R E P A I R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 1 9 9D B C C D B R E I N D E X .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 0 0D B C C d l l n a m e ( F R E E ) ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 1D B C C H E L P .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 1D B C C I N P U T B U F F E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 2 0 2D B C C M E M U S A G E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 2D B C C N E W A L L O C ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 3D B C C O P E N T R A N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 2 0 4D B C C O U T P U T B U F F E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 2 0 5D B C C P E R F M O N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 5

Page 8: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C P I N T A B L E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 2 0 6D B C C P R O C C A C H E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 6D B C C R O W L O C K .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 7D B C C S H O W C O N T I G ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 2 0 7D B C C S H O W _ S T A T I S T I C S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 2 0 8D B C C S H R I N K D A T A B A S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 2 0 8D B C C S H R I N K F I L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 0 9D B C C T E X T A L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 1 0D B C C S Q L P E R F ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 1 1D B C C T E X T A L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 1 1D B C C T E X T A L L O C .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 1 2D B C C T R A C E O F F ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 2D B C C T R A C E O N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 3D B C C T R A C E S T A T U S .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 3D B C C U N P I N T A B L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 4D B C C U P D A T E U S A G E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 2 1 4D B C C U S E R O P T I O N S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 6D E A L L O C A T E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 6十 进 制 数 据 类 型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 7D E C L A R E @ l o c a l _ v a r i a b l e .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 8D E C L A R E C U R S O R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 1 9D E G R E E S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 1

Page 9: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D E L E T E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 2 2 2D E N Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 6D I F F E R E N C E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 8D R O P D A T A B A S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 9D R O P D E F A U L T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 3 0D R O P I N D E X .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 1D R O P P R O C E D U R E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 3 2D R O P R U L E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 3D R O P S T A T I S T I C S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 2 3 3D R O P T A B L E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 4D R O P T R I G G E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 3 5D R O P V I E W .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 5D U M P ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 6E L S E ( I F … E L S E ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 3 6E N D ( B E G I N . . . E N D ) ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 7E X E C U T E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 9[ N O T ] E X I S T S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 2 4 1E X P ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 2F E T C H .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 2 4 2F I L E _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 4F I L E _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 4F I L E G R O U P _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 5

Page 10: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F I L E G R O U P _ N A M E.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 4 5F I L E G R O U P P R O P E R T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 2 4 6F I L E P R O P E R T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 6浮 点 数 和 实 数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 7F L O O R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 7F O R M A T M E S S A G E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 4 8F R E E T E X T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 9F R E E T E X T T A B L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 0F R O M .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 1F U L L T E X T C A T A L O G P R O P E R T Y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 5F U L L T E X T S E R V I C E P R O P E R T Y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 6G E T A N S I N U L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 7G E T D A T E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 7G O ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 8G O T O ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 8G R A N T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 8G R O U P B Y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 9G R O U P I N G ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 9H A V I N G .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 2 5 9H O S T _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 0H O S T _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 0I D E N T _ I N C R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 1

Page 11: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I D E N T _ S E E D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 1I D E N T I T Y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 2I F . . . E L S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 2 6 2IN .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 3I N D E X P R O P E R T Y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 4I N D E X _ C O L .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 4I N S E R T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 5i n t , s m a l l i n t 和 t i n y i n t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 9I S _ M E M B E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 9I S _ S R V R O L E M E M B E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 2 7 0I S D A T E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 1I S [ N O T] N U L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 1I S N U L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 2I S N U M E R I C .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 2K I L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 3L E F T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 3L E N ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 4L I K E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 5L O A D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 6L O G .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 2 7 6L O G 1 0 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 2 7 7L O W E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 7

Page 12: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L T R I M .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 2 7 8M A X .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 8M IN ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 9m o n e y 和 s a m l l m o n e y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 0M O N T H .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 0N C H A R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 1n c h a r 和 n v a r c h a r .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 1N E W I D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 1N O T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 2 8 2n t e x t, t e x t 和 i m a g e ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 2 8 2N U L L I F ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 2n u m e r i c ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 3O B J E C T _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 3O B J E C T _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 3O B J E C T P R O P E R T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 8 4O P E N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 2 8 5O P E N Q U E R Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 6O P E N R O W S E T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 7O R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 9O R D E R B Y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 0PA R S E N A M E.... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 0P A T I N D E X .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 2 9 1

Page 13: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

P E R M I S S I O N S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 2P I .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 2 9 4P O W E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 4P R I N T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 5Q U O T E N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 6R A D I A N S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 2 9 6R A I S E R R O R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 7R A N D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 0R E A D T E X T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 1实 型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 3 0 2R E C O N F I G U R E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 2R E P L A C E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3 0 3R E P L I C A T E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 4R E S T O R E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3 0 5R E S T O R E F I L E L I S T O N L Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 6R E S T O R E H E A D E R O N L Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 7R E S T O R E L A B E L O N L Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 1 8R E S T O R E V E R I F Y O N L Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 1 8R E T U R N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 9R E V E R S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3 2 1R E V O K E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 2R I G H T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 2 2

Page 14: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R O L L B A C K T R A N S A C T I O N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 3R O L L B A C K W O R K .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 4R O U N D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 4R T R I M .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 2 5S A V E T R A N S A C T I O N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 6S E L E C T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 6S E S S I O N _ U S E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 1S E T @ l o c a l _ v a r i a b l e .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 1S E T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4S E T A N S I _ D E F A U L T S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5S E T A N S I _ N U L L _ D F L T _ O F F .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 3 4 5S E T A N S I _ N U L L _ D F L T _ O N ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3 4 6S E T A N S I _ N U L L S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 6S E T A N S I _ P A D D I N G .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 7S E T A N S I _ W A R N I N G S .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 3 4 7S E T A R I T H A B O R T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 3 4 8S E T A R I T H I G N O R E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 3 4 8S E T C O N C A T _ N U L L _ Y I E L D S _ N U L L ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 3 4 9S E T C U R S O R _ C L O S E _ O N _ C O M M I T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 3 4 9S E T D A T E F I R S T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 3 5 0S E T D A T E F O R M A T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 0S E T D E A D L O C K _ P R I O R I T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 1

Page 15: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T D I S A B L E _ D E F _ C N S T _ C H K .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 1S E T F I P S _ F L A G G E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 2S E T F M T O N L Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 2S E T F O R C E P L A N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 3 5 3S E T I D E N T I T Y _ I N S E R T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 5 3S E T I M P L I C I T _ T R A N S A C T I O N S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 4S E T L A N G U A G E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 4S E T L O C K _ T I M E O U T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 5S E T N O C O U N T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 5S E T N O E X E C .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 6S E T N U M E R I C _ R O U N D A B O R T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 6S E T O F F S E T S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 7S E T P A R S E O N L Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 3 5 7S E T P R O C I D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 8S E T Q U E R Y _ G O V E R N O R _ C O S T _ L I M I T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 8S E T Q U O T E D _ I D E N T I F I E R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 9S E T R E M O T E _ P R O C _ T R A N S A C T I O N S .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 0S E T R O W C O U N T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 3 6 0S E T S H O W P L A N _ A L L .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 3 6 1S E T S H O W P L A N _ T E X T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 6 1S E T S T A T I S T I C S I O ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 2S E T S T A T I S T I C S P R O F I L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 2

Page 16: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T S T A T I S T I C S T I M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 3 6 3S E T T E X T S I Z E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 3S E T T R A N S A C T I O N I S O L A T I O N L E V E L .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 4S E T X A C T _ A B O R T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 5S E T U S E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3 6 6S H U T D O W N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 7S I G N ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 7S I N ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 3 6 8s m a l l d a t e t i m e ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 8s m a l l i n t.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 6 8s m a l l m o n e y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 3 6 9S O M E| A N Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 9S O U N D E X .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 3 7 0S P A C E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 7 1S Q U A R E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 1S Q R T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 7 2S T A T S _ D A T E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 2S T D E V .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 3S T D E V P .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 3 7 3S T R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 4S T U F F ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 7 5S U B S T R I N G .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 6

Page 17: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S U M .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 3 7 7S U S E R _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 8S U S E R _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 8S U S E R _ S I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 9S U S E R _ S N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 9S Y S T E M _ U S E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 0T A N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 3 8 0t e x t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 3 8 1T E X T P T R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3 8 1T E X T V A L I D .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 1t i m e s t a m p ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 2t i n y i n t .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 8 2T R I G G E R _ N E S T L E V E L .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 8 3T R U N C A T E T A B L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 3T Y P E P R O P E R T Y .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 4U N I C O D E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 4U N I O N .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 5u n i q u e i d e n t i f i e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 6U P D A T E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 3 8 6U P D A T E S T A T I S T I C S ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 4U P D A T E T E X T ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 5U P P E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 3 9 8

Page 18: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

U S E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 9U S E R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 3 9 9U S E R _ I D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 9U S E R _ N A M E .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0 0V A R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 4 0 0v a r b i n a r y ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 4 0 1v a r c h a r .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 4 0 1V A R P ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 4 0 1W A I T F O R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 4 0 2W H E R E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0 2W H I L E ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 4 0 3W R I T E T E X T .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0 4Y E A R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0 6

Page 19: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

第 五 部 分

参 考 素 材

Page 20: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

第 2 1 章 T r a n s a c t - S Q L 编 程 语 言 参 考

T r a n s a c t - S Q L 是 Mi c r o s o f t S Q L S e r v e r 的 编 程 语 言 , 是 结 构 化 查 询 语 言 (S Q L )的 增 强 版 本 , SQ L 是 首 先 由 IB M 开 发 的 数 据 库 语 言 。 Tra n s a c t - S Q L 可 用 来 从 数据 库 中 提 取 数 据 , 执 行 SQ L 语 言 的 数 据 定 义 (D D L )、 数 据 操 作 (DM L )和 数 据 控 制(D C C ) 等 操 作 。 Tran s a c t - S Q L 将 继 续 朝 着 Ame r i c a n N a t i o n a l S t a n d a r d sI n s t i t u t e ( A N S I )标 准 的 方 向 向 前 发 展 , 并 在 许 多 情 况 下 进 一 步 改 进 。

Tra n s a c t - S Q L 用 下 列 格 式 对 语 法 进 行 分 类 :语 法 格 式 说 明UP P E R C A S E 关 键 词斜 体 字 用 户 提 供 的 内 容| (竖 杠 ) 选 择 一 个 , 与 单 词 “ or” 相 对 应[ ] 方 括 号 可 选 的 语 法{ } 花 括 号 必 选 的 语 法[ ,. . . n] 向 后 重 复 , 并 以 逗 号 或 空 格 分 隔 开<标 号 > :: = 标 记 可 能 有 多 个 长 度 单 位 的 语 法

Page 21: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

加 号 (+ )和 字 符 串 连 接 (+ )

加 号 (+ )有 两 种 功 能 , 它 可 以 表 示 加 法 运 算 符 , 把 两 个 数 字 加 到 一 起 或 将几 天 加 到 日 期 中 。 也 可 使 用 列 名 、 常 数 和 表 达 式 。

加 号 的 第 二 种 用 途 是 在 字 符 串 表 达 式 中 用 作 连 接 两 个 或 多 个 字 符 或 二 进 制字 符 串 的 运 算 符 。 把 字 符 串 放 在 引 号 内 , 就 可 以 使 用 从 非 字 符 到 字 符 或 从 非 二进 制 到 二 进 制 表 达 式 的 CO N V E R T (转 换 )或 CA S T (加 法 )函 数 。

语 法e x p r e s s i o n + e x p r e s s i o n[ + [ ... n]]

变 量e x p r e s s i o n 对 于 此 运 算 符 ,exp r e s s i o n 的 数 据 类 型 可 以 是 in t( 整

型 )、sma l l i n t( 短 整 型 )、tin y i n t( 微 整 型 )、nume r i c( 数 值 )、dec i m a l( 小 数 )、fl o a t( 实 型 )、rea l m o n e y( 货 币 型 )、 sma l l m o n e y( 小 货 币 型 )、 da t e t i m e( 日期 时 间 ) 以 及 sma l l d a t e t i m e( 小 日 期 时 间 )。 当 进 行日 期 运 算 时 , 可 提 供 一 个 dat e t i m e 或 sm a l l d a t e t i m e表 达 式 ; 而 另 一 个 表 达 式 必 须 是 天 数 , 以 便 计 算 日 期表 达 式 。 对 于 字 符 串 的 连 接 , 将 字 符 串 放 在 引 号 中 ,就 可 以 使 用 从 非 字 符 到 字 符 或 从 非 二 进 制 到 二 进 制 表达 式 的 CON V E R T (转 换 )或 CA S T (加 法 )函 数 。

n n 表 示 前 面 的 各 项 可 以 重 复 。

Page 22: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例 下 面 这 个 加 号 运 算 符 的 例 子 是 将 两 个 用 数 值 表 达 的 数 加 在 一 起 , 再 将 两 个用 列 名 表 达 的 数 加 在 一 起 :

S E L E C T 9 + 7

和S E L E C T s a l a r y + b o n u sF R O M m y m o n e y t a b l e在 这 个 例 子 中 ,将 数 值 9 和 7 加 在 一 起 ,也 可 以 用 列 名 表 示 数 值 ,并 使 用 FR O M

子 句 。

减 号 ( - )

减 号 是 将 两 数 相 减 的 运 算 符 。 也 可 以 用 减 号 运 算 符 从 日 期 中 减 去 天 数 , 该运 算 符 可 以 使 用 列 名 、 常 数 和 / 或 表 达 式 。

语 法

e x p r e s s i o n - e x p r e s s i o n[ -[ ⋯ n]]

变 量e x p r e s s i o n 对 于 此 运 算 符 , exp r e s s i o n 的 数 据 类 型 可 以 是 in t( 整

型 )、 sma l l i n t( 短 整 型 )、 ti n y i n t( 微 整 型 )、 nume r i c

Page 23: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

( 数 值 )、 de c i m a l( 小 数 )、 flo a t( 实 型 )、 rea l m o n e y( 货 币 型 )、 sma l l m o n e y( 小 货 币 型 )、 dat e t i m e( 日 期时 间 ) 以 及 sma l l d a t e t i m e( 小 日 期 时 间 )。 当 进 行 日 期运 算 时 , 可 提 供 一 个 dat e t i m e 或 sm a l l d a t e t i m e 表 达式 ; 而 另 一 个 表 达 式 必 须 是 天 数 , 以 便 计 算 日 期 表 达 式 。

n n 表 示 前 面 的 各 项 可 以 重 复 。

示 例下 面 是 减 号 运 算 符 的 示 例 。S E L E C T 4 - 2本 例 中 , SE L E C T 语 句 进 行 了 4 减 2 的 运 算 。

乘 号 ( * )

乘 号 是 用 于 乘 法 的 运 算 符 , 它 可 使 用 列 名 、 常 数 、 和 / 或 表 达 式 。语 法

e x p r e s s i o n * e x p r e s s i o n [ *[ ⋯ n]]

变 量

e x p r e s s i o n 对 于 此 运 算 符 , exp r e s s i o n 的 数 据 类 型 可 以 是 in t

Page 24: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

( 整 型 )、sma l l i n t( 短 整 型 )、tin y i n t( 微 整 型 )、num e r i c( 数 值 )、 de c i m a l( 小 数 )、 flo a t( 实 型 )、 rea l m o n e y( 货 币 型 ) 以 及 sma l l m o n e y( 小 货 币 型 )。

n n 表 示 前 面 的 各 项 可 以 重 复 。示 例下 面 是 乘 法 运 算 符 的 一 个 例 子 :

S E L E C T 7 * 8本 例 中 , 使 数 字 7 与 数 字 8 相 乘 。

除 号 (/ )

除 号 是 执 行 除 法 的 运 算 符 , 它 可 使 用 列 名 、 常 数 和 / 或 表 达 式 。语 法

e x p r e s s i o n/ e x p r e s s i o n [ / [ ⋯ n]]

变 量

e x p r e s s i o n 对 于 此 运 算 符 , ex p r e s s i o n 的 数 据 类 型 可 以 是in t( 整 型 )、sm a l l i n t( 短 整 型 )、 tin y i n t( 微 整 型 )、nu m e r i c( 数 值 )、dec i m a l( 小 数 )、fl o a t( 实 型 )、real

Page 25: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

m o n e y( 货 币 型 ) 以 及 sma l l m o n e y( 小 货 币 型 )。n n 表 示 前 面 的 各 项 可 以 重 复 。

示 例下 面 是 除 法 运 算 符 的 示 例 :

S E L E C T 5 6 / 8

本 例 中 , 数 56 除 以 8。

模 及 通 配 符 ( % )

符 号 “ % ” 用 于 两 种 不 同 的 操 作 。 它 可 以 提 供 一 个 数 除 以 另 一 个 数 后 的 余数 , 也 可 以 在 用 列 名 、 常 数 和 / 或 表 达 式 查 找 字 符 串 时 用 作 通 配 符 。 用 关 键 词LI K E 和 通 配 符 可 查 找 日 期 时 间 、 字 符 和 可 变 字 符 等 数 据 类 型 , 但 不 能 查 询 秒 。当 搜 索 不 同 数 据 部 分 的 日 期 时 间 型 值 时 , 最 好 使 用 LI K E。 如 果 要 搜 索 “ % ”,可 使 用 方 括 号 。

语 法 百 分 号 (% )可 用 作 模 运 算 符 , 它 返 回 相 除 的 余 数 :

S E L E C T d i v i d e n d % d i v i s o r

或 者 作 为 通 配 符 (% ):

Page 26: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

s t r i n g - e x p r e s s i o n [ N O T] L I K E s t r i n g _ e x p r e s s i o n

变 量

d i v i d e n d 模 运 算 (返 回 相 除 时 的 余 数 )中 要 相 除 的 数 字表 达 式 、 整 型 数 、 短 整 型 数 或 微 短 整 型 数 。

di v i s o r 模 运 算 中 ( 返 回 相 除 时 的 余 数 ) , 要 除 以di v i d e n d 的 数 字 表 达 式 、 整 型 数 、 短 整 型 数 , 或微 短 整 型 数 。

str i n g _ e x p r e s s i o n 括 在 引 号 内 的 字 符 串 和 通 配 符 (% )。NO T N O T 是 布 尔 表 达 式 的 否 定 表 示 符 。LI K E L I K E 进 行 模 式 比 较 。

示 例 下 面 是 个 模 运 算 符 返 回 余 数 的 示 例 :

S E L E C T 8 7 % 9

本 例 中 , 数 字 87 除 以 数 字 9, 返 回 余 数 6。下 面 是 个 通 配 符 (% )的 例 子 :

Page 27: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T *F R O M a u t h o r sW H E R E n a m el ike ′ H e m i n g % ′本 例 中 , 模 式 比 较 查 找 字 符 串 中 前 6 个 字 符 是 He m i n g 的 名 称 。

按 位 与 操 作 (& )

先 将 整 型 、 短 整 型 或 微 短 整 型 数 据 转 换 成 二 进 制 表 达 式 。 按 位 与 操 作 可 在二 进 制 表 达 式 上 进 行 操 作 。

语 法

e x p r e s s i o n & e x p r e s s i o n

变 量 exp r e s s i o n 是 转 换 成 二 进 制 的 整 型 、 短 整 型 、 微 短 整 型 数 据 。示 例下 面 是 按 位 与 操 作 的 示 例 :

S E L E C T ( i n t e g e r & i n t e g e r )0 0 0 1 0 1 0 1 二 进 制 表 示 的 整 数 A0 1 1 0 1 0 1 1 二 进 制 表 示 的 整 数 B-- - - - - - - - - - - - - - -

Page 28: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

0 0 0 0 0 0 0 1

本 例 中 , 当 A 的 位 是 0, B 的 位 是 1 时 , 结 果 是 0, 当 A 的 位 和 B 的 位 都 为1 时 , 结 果 是 1, A 的 位 和 B 的 位 都 为 0 时 , 结 果 是 0。 A 的 位 为 1, B 的 位 为 0时 , 结 果 也 是 0。

按 位 或 操 作 (| )

将 整 型 、 短 整 型 或 微 短 整 型 数 据 转 换 成 二 进 制 表 达 式 。 按 位 或 操 作 可 在 二进 制 表 达 式 上 进 行 操 作 。

语 法

e x p r e s s i o n| e x p r e s s i o n

变 量 exp r e s s i o n 是 转 换 成 二 进 制 的 整 型 、 短 整 型 或 微 短 整 型 数 。示 例下 面 是 按 位 或 操 作 的 例 子 :

(in t e g e r| in t e g e r )1 0 1 0 1 0 1 0 二 进 制 表 示 的 整 数 A1 1 0 0 1 0 1 1 二 进 制 表 示 的 整 数 B-- - - - - - - - - - - - - - - -

Page 29: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

1 1 1 0 1 0 1 1

本 例 中 , 当 A 和 B 的 位 都 是 1 时 , 结 果 是 1, 当 A 的 位 是 0, B 的 位 也 是 0时 , 结 果 是 0。 当 A 的 位 为 0, B 的 位 数 为 1 时 , 结 果 是 1, 当 A 的 位 为 1, B 的位 为 0 时 , 结 果 是 1。

按 位 异 或 操 作 ( ^)

将 整 型 、 短 整 型 或 微 短 整 型 数 据 转 换 成 二 进 制 表 达 式 , 按 位 异 或 可 在 二 进制 表 达 式 上 进 行 操 作 。

语 法

e x p r e s s i o n ^ e x p r e s s i o n

变 量 ex p r e s s i o n 是 转 换 成 二 进 制 的 整 型 、 短 整 型 、 微 短 整 型 数 据 。 按 位异 或 返 回 表 达 式 的 数 据 类 型 。

示 例下 面 是 按 位 异 或 操 作 的 示 例 :

SEL E C T ( A ^ B )1 0 1 0 1 0 1 0 二 进 制 表 示 的 整 数 A0 1 0 0 1 0 1 1 二 进 制 表 示 的 整 数 B

Page 30: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

- - - - - - - - - - - - - - - -1 1 1 0 0 0 0 1

本 例 中 , 当 A 和 B 的 位 都 是 1 时 , 结 果 是 0, 当 A 和 B 的 位 都 是 0 时 , 结 果是 0。 当 A 的 位 为 0, B 的 位 为 1, 或 A 的 位 为 1, B 的 位 为 0 时 , 返 回 值 为 1。

按 位 非 操 作 (~ )

将 整 型 、 短 整 型 或 微 短 整 型 数 据 转 换 成 二 进 制 表 达 式 , 按 位 非 可 在 二 进 制表 达 式 上 进 行 操 作 。

语 法

S E L E C T ~ e x p r e s s i o n

变 量 exp r e s s i o n 是 转 换 成 二 进 制 的 整 型 、 短 整 型 或 微 短 整 型 数 。 按 位 非 返回 表 达 式 的 数 据 类 型 。 由 于 微 短 整 型 、 短 整 型 和 整 型 数 存 储 的 字 节 数 不 同 , 所以 当 存 储 十 进 制 数 时 , 应 注 意 要 与 原 来 使 用 的 数 据 类 型 一 致 。

示 例下 面 是 按 位 非 的 示 例 :

~ 1 1 0 0 1 1 0 0

Page 31: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 返 回 值 为 0 0 1 1 0 0 1 1。 所 有 的 1 变 为 0, 所 有 的 0 变 为 1。

等 于 ( = )

E q u a l 号 表 示 进 行 比 较 的 两 个 表 达 式 彼 此 相 等 。语 法

e x p r e s s i o n = e x p r e s s i o n

变 量 exp r e s s i o n 是 任 意 有 效 的 表 达 式 , 它 可 以 是 变 量 或 列 名 。 只 能 比 较 数据 类 型 相 同 的 表 达 式 。

示 例下 面 是 等 于 比 较 运 算 符 的 例 子 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 = c o l u m n 2本 例 中 , 表 格 中 的 某 一 列 值 与 另 一 列 值 相 比 较 , 并 选 出 列 值 相 等 的 行 。

Page 32: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

大 于 ( > )

G r e a t T h a n 是 一 个 比 较 运 算 符 , 它 将 两 个 表 达 式 进 行 比 较 , 看 哪 一 个 更大 。

语 法e x p r e s s i o n > e x p r e s s i o n变 量 exp r e s s i o n 是 任 意 有 效 的 表 达 式 , 它 可 以 是 变 量 或 列 名 。 只 能 比 较 数

据 类 型 的 表 达 式 。示 例下 面 是 Gre a t T h a n 比 较 运 算 符 的 示 例 :S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 > c o l u m n 2本 例 中 , 表 中 col u m n 1 列 包 含 的 值 与 co l u m n 2 列 包 含 的 值 相 比 较 , 看 它 是

否 大 于 col u m n 2 列 的 值 , 如 果 是 , 就 选 择 此 行 。

小 于 ( < )

L e s s T h a n 是 个 比 较 运 算 符 , 它 将 两 个 表 达 式 进 行 比 较 , 看 哪 个 值 小 。语 法e x p r e s s i o n < e x p r e s s i o n

Page 33: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 ex p r e s s i o n 是 任 意 有 效 的 表 达 式 , 可 以 是 变 量 或 列 名 , 只 能 比 较 数据 类 型 相 同 的 表 达 式 。

示 例 下 面 是 Less T h a n 比 较 运 算 符 的 示 例 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 < c o l u m n 2

本 例 中 , 表 中 col u m n 1 列 包 含 的 值 与 co l u m n 2 列 值 相 比 较 , 看 它 是 否 小 于后 者 。 如 果 是 , 则 选 择 此 行 。

大 于 或 等 于 ( > = )

G r e a t e r T h a n o r E q u a l T o 是 一 个 比 较 运 算 符 , 它 将 表 达 式 进 行 比 较 ,看 其 中 一 个 是 否 大 于 或 等 于 另 一 个 。

语 法

e x p r e s s i o n > = e x p r e s s i o n

变 量 ex p r e s s i o n 是 任 意 有 效 的 表 达 式 , 可 以 为 变 量 或 列 名 , 只 能 比 较 数据 类 型 相 同 的 表 达 式 。

Page 34: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 Grea t T h a n o r E q u a l T o 比 较 运 算 符 的 示 例 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 > = c o l u m n 2本 例 中 , 将 表 中 co l u m n 1 列 包 含 的 值 与 colu m n 2 列 包 含 的 值 进 行 比 较 , 看

它 是 否 大 于 或 等 于 后 者 。 如 果 是 , 就 选 择 此 行 。

小 于 或 等 于 ( < = )

L e s s T h a n o r E q u a l T o 是 一 个 比 较 运 算 符 , 它 比 较 两 个 表 达 式 , 看 其 中一 个 表 达 式 是 否 小 于 或 等 于 另 一 个 表 达 式 。

语 法

e x p r e s s i o n < = e x p r e s s i o n

变 量 exp r e s s i o n 是 任 意 有 效 的 表 达 式 , 它 可 以 是 变 量 或 列 名 。 只 能 比 较 数据 类 型 相 同 的 表 达 式 。

示 例下 面 是 Les s T h e n o r E q u a l T o 比 较 运 算 符 的 示 例 :S E L E C T *

Page 35: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M M y T a b l eW H E R E c o l u m n 1 < = c o l u m n 2

本 例 中 , 将 表 格 中 colu m n 1 列 包 含 的 值 与 col u m n 2 列 包 含 的 值 相 比 较 , 看它 是 否 小 于 或 等 于 第 2 列 包 含 的 值 。 如 果 是 , 则 选 择 此 行 。

不 等 于 ( < > )

N o t E q u a l 号 (<>)表 示 比 较 的 两 个 表 达 式 彼 此 不 相 等 。语 法

e x p r e s s i o n < > e x p r e s s i o n

变 量 ex p r e s s i o n 是 任 意 有 效 的 表 达 式 , 它 可 以 是 变 量 或 列 名 。 只 能 比 较数 据 类 型 相 同 的 表 达 式 。

示 例下 面 是 Not E q u a l 比 较 运 算 符 的 示 例 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 < > c o l u m n 2

Page 36: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 将 表 中 某 列 的 值 与 另 一 列 的 值 相 比 较 , 选 出 列 值 不 等 的 行 。

不 小 于 ( ! < )

N o t L e s s T h a n 是 一 个 比 较 运 算 符 , 它 用 来 比 较 表 达 式 , 看 某 个 值 是 否 不小 于 另 一 个 值 。

语 法

e x p r e s s i o n ! < e x p r e s s i o n

变 量 exp r e s s i o n 是 任 意 有 效 的 表 达 式 , 可 以 是 变 量 或 列 名 。 只 能 比 较 数 据类 型 相 同 的 表 达 式 。

示 例 下 面 是 Not L e s s T h a n ( ! < )比 较 的 示 例 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 ! < c o l u m n 2

本 例 中 , 将 表 格 中 colu m n 1 列 包 含 的 值 与 col u m n 2 列 包 含 的 值 相 比 较 , 看它 是 否 不 小 于 第 二 列 的 值 。 如 果 是 , 选 择 此 行 。

Page 37: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

不 等 于 ( ! = )

此 版 本 的 Not E q u a l 号 ( ! = )表 示 相 比 较 的 两 个 表 达 式 彼 此 不 相 等 。语 法

e x p r e s s i o n ! = e x p r e s s i o n

变 量 exp r e s s i o n 是 任 意 有 效 的 表 达 式 , 可 以 是 变 量 或 列 名 。 只 能 比 较 数 据类 型 相 同 的 表 达 式 。

示 例 下 面 是 Not E q u a l 比 较 运 算 符 的 示 例 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 ! = c o l u m n 2

本 例 中 , 将 表 中 某 一 列 的 值 为 另 一 列 的 值 相 比 较 , 选 出 不 相 等 的 值 。

不 大 于 ( ! > )

N o t G r e a t e r T h a n ( ! > )是 一 个 比 较 运 算 符 , 它 比 较 两 个 表 达 式 , 看 哪 一 个

Page 38: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

更 大 。语 法

e x p r e s s i o n ! > e x p r e s s i o n

变 量 ex p r e s s i o n 是 任 意 有 效 的 表 达 式 , 可 以 是 变 量 或 列 名 , 只 能 比 较 数据 类 型 相 同 的 表 达 式 。

示 例下 面 是 Not G r e a t e r T h a n 比 较 运 算 符 的 示 例 :

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 ! > c o l u m n 2

本 例 中 , 将 表 中 co l u m n 1 列 包 含 的 值 与 co l u m n 2 列 包 含 的 值 相 比 较 , 看 它是 否 不 大 于 后 者 , 如 果 是 , 则 选 择 此 行 。

注 释 (--)

服 务 器 会 忽 略 注 释 , 但 是 可 以 用 这 个 语 法 将 注 释 放 在 包 含 Tra n s a c t - S Q L语 法 的 行 末 , 或 将 注 释 放 在 单 独 的 一 行 中 。 注 释 不 能 包 括 GO 语 句 。

语 法

Page 39: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

- -W h a t e v e r y o u r c o m m e n t i s

变 量 wha t e v e r y o u r c o m m e n t i s 可 以 是 任 意 字 符 串 。示 例

下 面 是 注 释 的 例 子 :

S E L E C T * - - A n y c h a r a c t e r s t r i n g c a n b e p l a c e d o n a c o m m e n t l i n eF R O M M y T a b l e

本 例 中 , 两 条 虚 线 表 示 注 释 的 开 始 。 SQL S e r v e r 将 不 会 检 查 行 中 两 条 虚 线后 面 的 部 分 。

注 释 (/ *.. .* / )

S Q L S e r v e r 会 忽 略 注 释 。 可 以 用 此 语 法 将 注 释 放 在 包 含 Tra n s a c t - S Q L 语句 的 行 中 间 , 或 将 注 释 放 在 单 独 的 一 行 或 数 行 中 。 注 释 不 能 包 含 GO 语 句 。

语 法

/ * W h a t e v e r y o u r c o m m e n t i s * /

变 量 wha t e v e r y o u r c o m m e n t i s 可 以 是 任 意 字 符 串 。

Page 40: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 注 释 的 示 例 :

/ * A n y c h a r a c t e r s t r i n g c a n b e p l a c e d o n a c o m m e n t l i n ea n d c a n s p a n m u l t i p l e li n e s */

本 例 中 ,“ / *” 表 明 注 释 的 开 始 ,“ */ ” 表 示 注 释 的 结 束 。 SQ L S e r v e r将 不 会 检 查 “ / *” 和 “ */ ” 之 间 的 行 的 内 容 。

匹 配 的 通 配 符 ([ ] )

在 通 配 搜 寻 过 程 中 , 方 括 号 ([ ] )表 示 SQL S e r v e r 会 搜 索 方 括 号 内 的 任 意字 符 。 方 括 号 内 的 值 也 可 指 定 值 的 范 围 。 e s c a p e 子 句 提 供 这 样 一 种 机 制 来 通 知 SQ L 服 务 器 : SQL S e r v e r 通 常 用 作通 配 语 法 的 某 些 字 符 串 , 现 在 不 在 通 配 环 境 中 使 用 , 而 是 用 作 字 符 串 中 正 在 搜索 的 值 。 换 言 之 , 要 寻 找 串 中 的 字 符 , 而 不 是 将 该 字 符 用 作 通 配 符 。

语 法

s t r i n g _ e x p r e s s i o n [ N O T ] L I K E s t r i n g _ e x p r e s s i o n [ E S C A P E ′e s c a p e _ c h a r a c t e r′ ]|[ N O T ]s t r i n g _ e x p r e s s i o n L I K E s t r i n g _ e x p r e s s i o n[ E S C A P E ′ e s c a p e _ c h a r a c t e r

Page 41: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

′ ]变 量

s t r i n g _ e x p r e s s i o n s t r i n g _ e x p r e s s i o n 是 字 符 串 和 通 配 符 。 它可 以 包 括 方 括 号 以 便 在 某 个 范 围 内 搜 寻 。

NO T NO T 为 布 尔 表 达 式 的 否 定 指 示 符 。LI K E L I K E 进 行 模 式 匹 配 。ES C A P E ′ es c a p e _ c h a r a c t e r′ 该 变 量 表 示 要 搜 寻 串 中 指 定 的 字 符 , 而 不

是 用 作 通 配 句 法 中 的 字 符 。

示 例 下 面 的 匹 配 的 通 配 符 示 例 可 搜 寻 列 中 某 范 围 内 的 字 母 :

S E L E C T *F R O M t a b l e 2W H E R E c o l u m n 2 L I K E ′ [ C - H ] u r r y′

本 例 中 , 将 选 出 col u m n 2 列 中 以 字 母 C 到 H 开 头 , 以 “ urr y "结 尾 的 任 何 值 。 下 面 是 搜 寻 列 中 方 括 号 的 例 子 :

C R E A T E T A B L E t a b l e 1( c o l u m n 1 c h a r ( 3 0 ) )

Page 42: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I N S E R T T a b l e 1 V A L U E S (′ [ S e a r c h f o r b r a c k e t′ )I N S E R T t a b l e 1 V A L U E S ( ′ D o n o t s e a r c h f o r b r a c k e t′ )S E L E C T c o l u m n 1F R O M t a b l e 1W H E R E c o l u m n 1 L I K E ′ [[ S e a r c h f o r b r a c k e t′ E S C A P E ′ [ ′

本 例 中 , ESC A P E 子 句 和 指 定 的 换 码 字 符 “[ ” 用 于 查 找 列 中 的 字 符 串 “ ′[ Sea r c h f o r b r a c k e t′ ”。 它 表 示 不 是 将 方 括 号 用 作 通 配 符 , 而 是 寻 找 列 中 的 方括 号 。

不 匹 配 的 通 配 符 ([ ^] )

在 通 配 搜 寻 过 程 中 ,“ ^” 表 示 SQL S e r v e r 查 找 不 在 方 括 号 内 的 字 符 。 方括 号 内 的 值 也 可 指 定 不 在 搜 寻 范 围 内 的 数 值 。 e s c a p e 子 句 提 供 这 样 一 种 机 制 来 通 知 SQ L 服 务 器 : SQL S e r v e r 通 常 用 作通 配 语 法 的 某 些 字 符 串 , 现 在 不 在 通 配 环 境 中 使 用 , 而 是 用 作 字 符 串 中 不 查 找的 值 。 换 言 之 , 要 寻 找 不 在 串 中 的 字 符 , 而 不 是 将 该 字 符 用 作 通 配 符 。

语 法

s t r i n g _ e x p r e s s i o n [ N O T ] L I K E s t r i n g _ e x p r e s s i o n [ E S C A P E ′e s c a p e _ c h a r a c t e r′ ]| [ N O T ] s t r i n g _ e x p r e s s i o n L I K E s t r i n g _ e x p r e s s i o n [ E S C A P E ′

Page 43: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

e s c a p e _ c h a r a c t e r′ ]

变 量

s t r i n g _ e x p r e s s i o n s t r i n g _ e x p r e s s i o n 是 字 符 串 和 通配 符 , 以 及 引 号 中 放 置 的 任 意 字 符 串 。它 可 以 包 括 方 括 号 以 便 在 某 个 范 围 内 搜寻 。

NO T N O T 为 布 尔 表 达 式 的 否 定 指 示 符 。LI K E LIKE 进 行 模 式 匹 配 。

ESC A P E ′ es c a p e _ c h a r a c t e r′ 该 变 量 表 示 要 搜 寻 串 中 指 定 的 字 符 , 而不 是 用 作 通 配 句 法 中 的 字 符 。

示 例 下 面 的 不 匹 配 的 通 配 符 示 例 可 搜 寻 列 中 某 范 围 内 的 字 母 :

S E L E C T *F R O M t a b l e 2W H E R E c o l u m n 2 N O T L I K E ′ [ ^ I -Z ] ′

本 例 中 , 将 从 表 中 选 出 col u m n 2 列 中 不 以 字 母 I 到 Z 开 头 的 任 何 值 。

Page 44: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

一 个 字 符 匹 配 的 通 配 符 ( _ )

在 通 配 搜 寻 过 程 中 , 下 划 线 会 通 知 SQL S e r v e r 搜 寻 后 面 可 以 跟 随str i n g _ e x p r e s s i o n 中 其 余 值 的 单 个 字 符 。 e s c a p e 子 句 提 供 这 样 一 种 机 制 来 通知 SQ L 服 务 器 : SQL S e r v e r 通 常 用 作 通 配 语 法 的 某 些 字 符 , 现 在 不 在 通 配 环 境中 使 用 , 而 是 用 作 字 符 串 中 正 在 搜 索 的 值 。 换 言 之 , 要 寻 找 串 中 的 字 符 , 而 不是 将 该 字 符 用 作 通 配 符 。

语 法

s t r i n g _ e x p r e s s i o n [ N O T ] L I K E s t r i n g _ e x p r e s s i o n [ E S C A P E ′e s c a p e _ c h a r a c t e r′ ]| [ N O T ] s t r i n g _ e x p r e s s i o n L I K E s t r i n g _ e x p r e s s i o n [ E S C A P E ′e s c a p e _ c h a r a c t e r′ ]

变 量

s t r i n g _ e x p r e s s i o n s t r i n g _ e x p r e s s i o n 是 字 符 串 和 通配 符 , 以 及 放 在 引 号 中 的 任 意 字 符 串 。它 可 以 包 括 方 括 号 以 便 在 某 个 范 围 内 搜寻 。

NO T N O T 为 布 尔 表 达 式 的 否 定 指 示 符 。

Page 45: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L I K E L I K E 进 行 模 式 匹 配 。ESC A P E ′ es c a p e _ c h a r a c t e r′ 该 变 量 表 示 要 搜 寻 串 中 指 定 的 字 符 , 而

不 是 用 作 通 配 句 法 中 的 字 符 。

示 例下 面 的 匹 配 的 通 配 符 示 例 可 搜 寻 后 面 能 接 串 中 其 余 值 的 一 个 字 符 :

S E L E C T *F R O M t a b l e 2W H E R E c o l u m n 2 L I K E ′ _ u r r y′

本 例 中 , 将 从 表 中 选 出 后 跟 字 母 “ ur r y” 的 任 意 字 符 。

@ @ c o n n e c t i o n s

此 全 局 变 量 可 保 存 自 Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 以 来 注 册 和 未成 功 注 册 的 数 目 。

语 法S E L E C T @ @ c o n n e c t i o n s

Page 46: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ c p u _ b u s y

全 局 变 量 @@c p u _ b u s y 保 存 了 自 Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 以 来 ,CP U 执 行 SQL S e r v e r 命 令 占 用 的 滴 嗒 (3 . 3 千 分 之 一 秒 )数 。

语 法

S E L E C T @ @ c p u _ b u s y

@ @ c u r s o r _ r o w s

全 局 变 量 @@c u r s o r _ r o w s 可 保 存 最 近 一 次 启 动 时 游 标 中 的 行 数 。 如 果 异 步 占 用 游 标 , 则 返 回 值 (- m )是 当 前 键 集 内 的 行 数 。 如 果 全 部 占 用 游标 , 则 返 回 值 (n )为 游 标 中 的 所 有 行 。 如 果 没 有 打 开 游 标 , 返 回 值 为 0(零 )。

语 法

S E L E C T @ @ c u r s o r _ r o w s

示 例下 面 是 使 用 @@c u r s o r _ r o w s 的 例 子 :

S E L E C T @ @ c u r s o r _ r o w s

Page 47: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D E C L A R E c u r s o r 1 C U R S O R F O RS E L E C T c u s t o m e r _ n a m e F R O M c u s t o m e rO P E N c u r s o r 1F E T C H N E X T F R O M c u r s o r 1S E L E C T @ @ c u r s o r _ r o w sC L O S E c u r s o r 1D E A L L O C A T E c u r s o r 1

本 例 中 , 因 为 没 有 打 开 游 标 , @@cu r s o r _ r o w s 第 一 次 出 现 时 , 返 回 值 为 0。下 一 次 出 现 @@c u r s o r _ r o w s 时 , 返 回 值 为 -1, 因 为 只 有 FET C H N E X T 语 句 异 步 占用 了 一 行 游 标 。

@ @ d a t e f i r s t

全 局 变 量 @@d a t e f i r s t 包 含 SE T D A T E F I R S T 的 值 , 该 设 置 表 示 SQL S e r v e r不 考 虑 是 每 星 期 的 哪 一 天 , 其 中 , 星 期 天 返 回 1; 星 期 一 返 回 2; 星 期 二 返 回 3;星 期 三 返 回 4; 星 期 四 返 回 5; 星 期 五 返 回 6; 星 期 六 返 回 7。

语 法

S E L E C T @ @ d a t e f i r s t

Page 48: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ d b t s

全 局 变 量 @@ d b t s 保 存 了 当 前 数 据 库 的 当 前 时 间 戳 。语 法

S E L E C T @ @ d b t s

@ @ e r r o r

全 局 变 量 @@er r o r 保 存 了 对 话 过 程 中 执 行 最 后 一 个 Tra n s a c t - S Q L 语 句 的 错误 号 。 如 果 执 行 Tra n s a c t - S Q L 语 句 时 没 有 出 现 错 误 , @@er r o r 就 设 置 为 0(零 )。如 果 有 一 个 SQL S e r v e r 错 误 , @@e r r o r 就 将 错 误 号 存 储 在 sysm e s s a g e s 系 统 表中 。 该 变 量 只 将 错 误 号 保 存 到 下 一 个 Tra n s a c t - S Q L 语 句 开 始 执 行 时 。 只 能 在 执行 完 一 个 Tra n s a c t - S Q L 语 句 , 且 还 没 开 始 执 行 下 一 个 Tran s a c t - S Q L 语 句 时 查看 全 局 变 量 @@ e r r o r。 因 此 , 要 在 语 句 执 行 完 后 立 即 查 看 @@e r r o r 失 误 , 如 果 以后 在 Tra n s a c t - S Q L 代 码 中 需 要 @@e r r o r 的 值 , 也 可 以 将 @@e r r o r 存 储 到 一 个 局部 变 量 中 。

语 法

S E L E C T @ @ e r r o r

Page 49: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 将 @@er r o r 存 储 到 局 部 变 量 中 的 例 子 :

D E C L A R E @ e r r o r _ n u m b e r i n tS E L E C T *F R O M t a b l e 1S E L E C T @ e r r o r _ n u m b e r = @ @ e r r o r

本 例 中 , @@er r o r 中 的 值 存 储 到 局 部 变 量 @er r o r _ n u m b e r 中 。

@ @ f e t c h _ s t a t u s

全 局 变 量 @@ f e t c h _ s t a t u s 可 保 存 游 标 FE T C H 语 句 的 状 态 , 其 中 , 零 (0 )表示 指 读 取 成 功 , -1 表 示 读 取 失 败 , -2 表 示 已 读 取 的 行 不 再 有 效 。

语 法

S E L E C T @ @ f e t c h _ s t a t u s

示 例下 面 为 使 用 @@f e t c h _ s t a t u s 的 示 例 :

Page 50: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D E C L A R E c u r s o r 1 C U R S O R F O RS E L E C T c u s t o m e r _ n a m eF R O M t a b l e 1F E T C H N E X T F R O M c u r s o r 1W H I L E @ @ f e t c h _ s t a t u s = 0B E G I NF E T C H N E X T F R O M c u r s o r 1E N DC L O S E c u r s o r 1D E A L L O C A T E c u r s o r 1

本 例 中 , @@f e t c h _ s t a t u s 用 于 控 制 游 标 。

@ @ iden t i ty

全 局 变 量 @@i d e n t i t y 包 含 最 后 一 次 使 用 的 等 同 值 。执 行 INSER T 或 S E L E C T I N T O语 句 可 以 改 变 全 局 变 量 @@i d e n t i t y, 当 将 成 批 拷 贝 插 入 到 表 中 时 也 会 改 变 全 局变 量 @@i d e n t i t y。 如 果 对 没 有 等 同 列 的 表 格 进 行 操 作 , 对 话 的 @@ i d e n t i t y 就可 设 置 为 空 。 如 果 操 作 被 回 滚 , @@i d e n t i t y 将 不 复 位 , 而 保 持 其 递 增 的 值 。

语 法

S E L E C T @ @ i d e n t i t y

Page 51: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 使 用 @@i d e n t i t y 的 示 例 :

S E L E C T @ @ i d e n t i t y

本 例 中 , 将 显 示 @@i d e n t i t y 的 值 , 在 对 有 全 同 列 的 表 格 进 行 插 入 操 作 后 ,用 此 语 句 可 以 查 看 刚 才 插 入 到 等 同 列 中 的 值 。

@ @ idle

全 程 变 量 @@ i d l e 可 存 储 SQL S e r v e r 启 动 后 没 有 使 用 的 3.33 毫 秒 数 。示 例下 面 是 使 用 @@ i d l e 的 示 例 :S E L E C T @ @ i d l e

本 例 中 , 将 显 示 SQ L S e r v e r 处 于 空 闲 状 态 的 @@i d l e 时 间 量 。

@ @ i o _ b u s y

全 局 变 量 @@i o _ b u s y 可 包 含 SQL S e r v e r 启 动 后 执 行 输 入 输 出 操 作 的 3. 3 3 毫

Page 52: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

秒 数 。示 例下 面 是 使 用 @@i o _ b u s y 的 示 例 :

S E L E C T @ @ i o _ b u s y

本 例 中 , @@i o - b u s y 将 显 示 SQL - S e r v e r 最 近 一 次 启 动 以 来 执 行 输 入 输 出 操作 所 占 用 的 时 间 。

@ @ L A N G ID

全 局 变 量 @@L A N G I D 可 返 回 当 前 使 用 的 语 言 的 本 地 语 言 ID。语 法

@ @ L A N G I D

@ @ l a n g u a g e

全 局 变 量 @@ l a n g u a g e 可 保 存 Mic r o s o f t S Q L S e r v e r 当 前 所 用 语 言 的

Page 53: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 言 名 称 。语 法

S E L E C T @ @ l a n g u a g e

示 例下 面 是 使 用 @@ l a n g u a g e 的 示 例 :

S E L E C T @ @ l a n g u a g e

本 例 中 , @@l a n g u a g e 变 量 将 显 示 SQ L S e r v e r 所 用 的 语 言 名 称 。

@ @ l o c k _ t i m e o u t

全 局 变 量 @@l o c k _ t i m e o u t 可 保 存 运 行 过 程 中 的 超 时 锁 定 设 置 , 以 毫 秒 为 单位 。

语 法

S E L E C T @ @ l o c k _ t i m e o u t

Page 54: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ m a x _ c o n n e c t i o n s

全 局 变 量 @@m a x _ c o n n e c t i o n s 可 保 存 Mic r o s o f t S Q L S e r v e r 并 行 联 接 的 最大 值 , 这 个 最 大 值 是 用 sp_ c o n f i g u r e 运 行 阶 段 的 值 为 SQ L S e r v e r 配 置 的 。

语 法

S E L E C T @ @ m a x _ c o n n e c t i o n s

@ @ m a x _ p r e c i s i o n

全 局 变 量 @@m a x _ p r e c i s i o n 可 保 存 由 小 数 或 数 字 型 数 据 使 用 的 精 度 等 级 , 其缺 省 值 为 28。 在 命 令 提 示 行 上 调 用 sqls e r v r, 并 使 用 / p 参 数 启 动 Mic r o s o f tS e r v e r, 就 可 以 改 变 该 变 量 。

语 法

S E L E C T @ @ m a x _ p r e c i s i o n

Page 55: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ n e s t l e v e l

全 局 变 量 @@n e s t l e v e l 可 及 时 存 储 当 前 存 储 过 程 在 某 一 位 置 的 嵌 套 级 。 当 一个 存 储 过 程 调 用 另 一 个 存 储 过 程 时 , 嵌 套 级 从 0 开 始 递 增 , 递 增 的 权 限 值 为 32。

语 法

S E L E C T @ @ n e s t l e v e l

@ @ o p t i o n s

全 局 变 量 @@o p t i o n s 可 保 存 当 前 对 每 个 用 户 都 有 效 的 SE T 选 项 信 息 。 用sp_ c o n f i g u r e 配 置 选 项 “ use r o p t i o n s” 可 改 变 整 个 设 置 , 并 代 表 @@ o p t i o n s,S E T 命 令 可 用 于 改 变 语 言 和 查 询 选 项 。 可 以 用 SE T 命 令 改 变 选 项 , 然 后 立 刻 检查 @@o p t i o n s 中 的 选 项 值 。

语 法

S E L E C T @ @ o p t i o n s

Page 56: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ p a c k _ r e c e i v e d

全 局 变 量 @@p a c k _ r e c e i v e d 可 保 存 输 入 数 据 包 的 数 目 , 此 数 据 包 为 自Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 以 来 接 收 到 的 和 读 取 的 数 据 包 。

语 法

S E L E C T @ @ p a c k _ r e c e i v e d

@ @ p a c k _ s e n t

全 局 变 量 @@p a c k _ s e n t 可 保 存 输 出 数 据 包 的 数 目 , 此 数 据 包 为 自 Mic r o s o f tS Q L S e r v e r 最 近 一 次 启 动 以 来 发 送 的 数 据 包 。

语 法

S E L E C T @ @ p a c k _ s e n t

Page 57: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ p a c k e t _ e r r o r s

全 局 变 量 pac k e t _ e r r o r s 可 保 存 Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 数 据包 出 现 错 误 的 数 目 。

语 法

S E L E C T @ @ p a c k e t _ e r r o r s

@ @ p r o c i d

全 局 变 量 @@p r o c i d 可 保 存 当 前 正 执 行 的 存 储 过 程 的 ID。语 法

S E L E C T @ @ p r o c i d

@ @ r e m s e r v e r

全 局 变 量 @@r e m s e r v e r 位 于 注 册 记 录 中 , 它 包 含 了 远 程 服 务 器 的 名 称 。

Page 58: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

S E L E C T @ @ r e m s e r v e r

@ @ r o w c o u n t

全 局 变 量 @@r o w c o u n t 可 保 存 受 Tra n s a c t - S Q L 语 句 影 响 的 行 数 , 这 些Tra n s a c t - S Q L 语 句 是 仅 是 为 那 些 影 响 各 行 的 语 句 执 行 的 , 例 如 : SEL E C T 语 句 ,IN S E R T 语 句 , UP D A T E 语 句 和 DEL E T E 语 句 。

语 法

S E L E C T @ @ r o w c o u n t

@ @ s e r v e r n a m e

全 局 变 量 @@s e r v e r n a m e 可 保 存 本 地 Mic r o s o f t S Q L S e r v e r 的 名 称 。语 法

S E L E C T @ @ s e r v e r n a m e

Page 59: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ s e r v i c e n a m e

全 局 变 量 @@s e r v i c e n a m e 可 保 存 Mic r o s o f t S Q L S e r v e r 的 注 册 键MSS Q L S e r v e r 的 名 称 。

语 法

S E L E C T @ @ s e r v i c e n a m e

@ @ s p i d

全 局 变 量 @@ s p i d 可 保 存 当 前 运 行 的 程 序 的 程 序 ID。语 法

S E L E C T @ @ s p i d

@ @ t e x t s i z e

全 局 变 量 @@t e x t s i z e 可 保 存 SET 选 项 TEX T S I Z E 的 当 前 值 。 TE X T S I Z E 选 项

Page 60: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

可 决 定 SEL E C T 语 句 能 返 回 的 文 本 或 图 像 数 据 的 最 长 长 度 。语 法

S E L E C T @ @ t e x t s i z e

@ @ t i m e t i c k s

全 局 变 量 @@t i m e t i c k s 可 保 存 计 算 机 从 属 滴 嗒 的 长 度 , 1 毫 秒 表 示 1 滴 嗒 。操 作 系 统 认 为 1 滴 嗒 为 31 . 2 5 毫 秒 , 或 1/ 32 秒 。

语 法

S E L E C T @ @ t i m e t i c k s

@ @ t o t a l _ e r r o r s

全 局 变 量 @@t o t a l _ e r r o r s 可 保 存 自 Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 以来 发 现 的 磁 盘 读 / 写 错 误 总 数 。

语 法

Page 61: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T @ @ t o t a l _ e r r o r s

@ @ t o t a l _ r e a d

全 局 变 量 @@t o t a l _ r e a d 可 保 存 自 Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 以 来查 看 到 的 磁 盘 读 取 总 数 。

语 法

S E L E C T @ @ t o t a l _ r e a d

@ @ tota l_wr i t e

全 局 变 量 @@t o t a l _ w r i t e 可 保 存 自 Mic r o s o f t S Q L S e r v e r 最 近 一 次 启 动 以来 查 看 到 的 磁 盘 写 入 总 数 。

语 法

S E L E C T @ @ t o t a l _ w r i t e

Page 62: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

@ @ t r a n c o u n t

全 局 变 量 @@t r a n c o u n t 可 保 存 当 前 对 话 过 程 中 为 用 户 打 开 的 活 动 事 务 的 总数 。

语 法

S E L E C T @ @ t r a n c o u n t

@ @ v e r s i o n

全 局 变 量 @@v e r s i o n 可 保 存 Mi c r o s o f t S Q L S e r v e r 当 前 使 用 的 处 理 器 的 版本 日 期 、 版 本 和 类 型 。

语 法

S E L E C T @ @ v e r s i o n

Page 63: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A B S

A B S 函 数 返 回 数 值 表 达 式 的 绝 对 值 。语 法

A B S ( n u m e r i c _ e x p r e s s i o n )

变 量 num e r i c e x p r e s s i o n 可 以 是 整 型 数 、 短 整 型 数 、 微 短 整 型 数 、 小 数 、浮 点 数 、 货 币 、 数 字 、 实 型 数 或 小 货 币 型 数 。

A C O S

A C O S 函 数 是 一 个 数 学 函 数 , 它 返 回 以 弧 度 表 示 的 角 度 , 即 ar c c o s i n e。语 法

A C O S ( f l o a t _ e x p r e s s i o n )

变 量 flo a t _ e x p r e s s i o n 是 浮 点 数 数 据 类 型 , 表 示 角 度 的 反 余 弦 。

Page 64: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A L L

A L L 可 返 回 tr u e (真 )或 fa l s e (假 ), 当 由 子 查 询 返 回 的 内 容 与 表 达 式 想 相 匹配 时 , 就 返 回 真 , 当 不 是 全 部 匹 配 或 完 全 不 匹 配 时 , 返 回 假 。

语 法

[ NO T] ex p r e s s i o n { = | < > | ! = | > | > = | ! > | < | < = | ! < }AL L ( s u b q u e r y )

变 量

N O T N O T 为 布 尔 表 达 式 的 否 定 指 示 符 。exp r e s s i o n e x p r e s s i o n 可 以 是 为 列 名 , 常 数 , 函

数 、 变 量 、 子 查 询 程 序 、 多 个 常 数 或多 个 函 数

{= | <> | != | > | >= | !> | < |<=| !< }

这 些 符 号 代 表 运 算 符 。

su b q u e r y 子 程 序 中 不 能 有 OR D E R B Y 语 句 ,COM P U T E 子 句 和 关 键 词 INTO。

Page 65: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A L T E R D A T A B A S E

A L T E R D A T A B A S E 可 改 变 数 据 库 大 小 和 文 件 。语 法

A L T E R D A T A B A S E d a t a b a s e{ A D D F I L E < f i l e s p e c > [ , . . .n] [ T O F I L E G R O U P f i l e g r o u p _ n a m e]| A D D L O G F I L E < f i l e s p e c > [ , . . .n]| R E M O V E F I L E l o g i c a l _ f i l e _ n a m e| A D D F I L E G R O U P f i l e g r o u p _ n a m e| R E M O V E F I L E G R O U P f i l e g r o u p _ n a m e| M O D I F Y F I L E < f i l e s p e c >| M O D I F Y F I L E G R O U P f i l e g r o u p _ n a m e f i l e g r o u p _ p r o p e r t y}< f i l e s p e c > : : =( N A M E = ′ l o g i c a l _ f i l e _ n a m e′[ , F I L E N A M E = ′ o s _ f i l e _ n a m e′ ][ , S I Z E = s i z e][ , M A X S I Z E = { m a x _ s i z e | U N L I M I T E D } ][ , F I L E G R O W T H = g r o w t h _ i n c r e m e n t] )

Page 66: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

D A T A B A S E 要 修 改 的 数 据 库 。AD D F I L E A D D F I L E 添 加 文 件 或 文 件 组 。NA M E N a m e 指 文 件 的 逻 辑 名 称 。FI L E N A M E F I L E N A M E 是 操 作 系 统 上 的 文 件 名 。SI Z E S I Z E 是 文 件 开 始 的 大 小 ,MB(缺 省 值 为 最 小 1M B )

表 示 兆 字 节 , KB 表 示 千 字 节 。 如 果 没 有 提 供 文件 的 大 小 , SIZE 变 量 对 数 据 预 置 为 3M B, 对 记录 预 置 为 1M B。

MA X S I Z E M A X S I Z E 是 文 件 可 以 扩 展 的 最 大 容 量 , 以 MB(缺省 值 )或 KB 表 示 。 如 果 没 有 提 供 此 变 量 , 文 件将 扩 展 到 磁 盘 满 为 止 。

UN L I M I T E D U N L I M I T E D 表 示 让 文 件 扩 展 至 磁 盘 满 为 止 。FIL E G R O W T H F I L E G R O W T H 指 文 件 一 次 增 长 的 量 ( 缺 省 值 为

25 6 K B, 最 小 64K B ), 零 (0 )表 示 没 有 增 长 。TO F I L E G R O U P T O F I L E G R O U P 指 将 文 件 添 加 至 文 件 组 。FOR R E S T O R E 这 是 一 个 向 后 兼 容 的 变 量 (版 本 6. 5 使 用 FO R

L O A D )。 由 于 要 恢 复 数 据 库 , 所 以 无 需 初 始 化 就可 以 建 立 文 件 。

ADD L O G F I L E A D D L O G F I L E 可 将 记 录 文 件 添 加 到 数 据 库 中 。DR O P L O G F I L E D R O P L O G F I L E 可 从 数 据 库 中 撤 消 记 录 文 件 。

Page 67: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C R E A T E F I L E G R O U P C R E A T E F I L E G R O U P 可 给 要 建 立 的 文 件 组 命 名 。fil e g r o u p _ n a m e 要 添 加 或 撤 消 的 文 件 组 名 称 。REM O V E F I L E G R O U P R E M O V E F I L E G R O U P 可 指 定 要 撤 消 的 文 件 组 。MOD I F Y F I L E M O D I F Y F I L E 可 指 示 SQL S e r v e r 修 改 文 件 的

FI L E N A M E, S I Z E 和 MA X S I Z E。MO D I F Y F I L E G R O U P f i l e g r o u p _ n a m e f i l e g r o u p _ p r o p e r t y

M O D I F Y F I L E G R O U P 可 给 出 文 件 组 的 文 件 组 属性 。 文 件 组 属 性 有 : REA D O N L Y = 只 读 文 件 组 ,REA D W R I T E = 允 许 修 改 , DEFA U L T = 文 件 组 是 建 立新 表 格 和 新 索 引 的 缺 省 文 件 组 。

示 例下 面 是 ALTE R D A T A B A S E 语 句 的 示 例 :

A L T E R D A T A B A S E m y d a t a b a s eA D D F I L E ( N A M E = ′ m d d a t 2 ′ ,F I L E N A M E = ′ c :\ m s s q l 7 \ da ta\ m d d a t 2 . n d f′ ,S I Z E = 1 0 M B ,M A X S I Z E = 1 0 0 M B ,F I L E G R O W T H = 2 M B )本 例 中 , 文 件 添 加 到 myd a t a b a s e 中 , 容 量 为 10 M B, 最 大 容 量 为 100MB, 文

件 以 2M B 的 增 量 递 增 。

Page 68: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A L T E R P R O C E D U R E

A L T E R P R O C E D U R E 可 改 变 已 有 的 存 储 过 程 , 但 不 影 响 许 可 与 从 属 对 象 。 如 果要 保 存 可 选 项 , 就 必 须 用 ALT E R P R O C E D U R E 使 用 WI T H E N C R Y P T I O N 或 W I T HR E C O M P I L E。

语 法

A L T E R P R O C [ E D U R E] p r o c e d u r e _ n a m e [ ; n u m b e r][ ( { @ p a r a m e t e r _ n a m e | p a r a m e t e r } d a t a _ t y p e [ = d e f a u l t][ O U T P U T] )][ ,...n]W I T H { R E C O M P I L E | E N C R Y P T I O N | R E C O M P I L E , E N C R Y P T I O N }][ F O R R E P L I C A T I O N ]A S s q l _ s t a t e m e n t[ , . . .n]变 量

p r o c e d u r e _ n a m e p r o c e d u r e _ n a m e 是 要 修 改 的 程 序 名 称;n u m b e r n u m b e r 将 程 序 存 储 集 中 在 一 起 , 以 便 能 一 次 撤

消 它 们 。{ @pa r a m e t e r _ n a m e |p a r a m e t e r}

存 储 过 程 的 变 量 或 参 数 。

da t a _ t y p e d a t a _ t y p e 是 变 量 或 参 数 的 数 据 类 型 , 不 支 持 图

Page 69: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

像 数 据 类 型 。De f a u l t d e f a u l t 是 量 或 参 数 的 缺 省 值 。OU T P U T O U T P U T 表 示 变 量 或 参 数 用 来 返 回 一 个 值 。N n 表 示 可 以 列 出 更 多 的 变 量 或 参 数 , 最 多 可 达

1, 0 2 4 个 变 量 或 参 数 。{ REC O M P I L E | E N C R Y P T I O N

| RE C O M P I L E ,EN C R Y P T I O N}

RE C O M P I L E 表 示 每 次 程 序 执 行 时 都 重 新 编 译 。EN C R Y P T I O N 表 示 将 加 密 存 储 CRE A T E P R O C E D U R E语 句 的 sys c o m m e n t s 系 统 表 格 行 。

FOR R E P L I C A T I O N F O R R E P L I C A T I O N 可 筛 选 只 通 过 复 制 执 行 的 存 储过 程 和 用 FOR R E P L I C A T I O N 子 句 建 立 的 存 储 程序 。 它 们 不 能 在 订 阅 服 务 器 上 执 行 , 也 不 能 和变 量 WIT H R E C O M P I L E 一 起 使 用 。

AS 存 储 过 程 的 命 令 位 于 关 键 词 AS 的 后 面 。sql _ s t a t e m e n t T r a n s a c t - S Q L 语 句 建 立 存 储 过 程 。n n 表 示 多 个 Tra n s a c t - S Q L 语 句 组 成 存 储 过 程 ,

并 可 以 列 出 来 。示 例下 面 是 ALT E R P R O C E D U R E 语 句 的 示 例 :

A L T E R P R O C E D U R E M y P r o c e d u r eW I T H E N C R Y P T I O NA S

Page 70: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T c o l 1 , c o l 2F R O M M y T a b l eW H E R E c o l 1 = 5G O

本 例 中 , 加 密 了 存 储 过 程 。

A L T E R T A B L E

A L T E R T A B L E 语 句 可 通 过 撤 消 列 、 添 加 列 、 添 加 表 格 或 列 级 约 束 、 禁 止 或 重新 启 动 约 束 或 触 发 器 来 改 变 指 定 表 格 的 定 义 。

语 法A L T E R T A B L E M y T a b l e{[ W I T H C H E C K | W I T H N O C H E C K ]{[ A L T E R C O L U M N c o l u m n _ n a m e{[ n e w _ d a t a _ t y p e [ ( p r e c i s i o n[ , sca le] )][ N U L L |N O T N U L L ] ]| [ { A D D | D R O P } R O W G U I D C O L ]}]

Page 71: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

| A D D{ [ < c o l u m n _ d e f i n i t i o n > ]| c o l u m n _ n a m e A S c o m p u t e d _ c o l u m n _ e x p r e s s i o n|[ < t a b l e _ c o n s t r a i n t > ]}( , . . . n )| D R O P{ [ C O N S T R A I N T] c o n s t r a i n t| C O L U M N c o l u m n}[ , . . .n]| { C H E C K |N O C H E C K } C O N S T R A I N T{ A L L | c o n s t r a i n t [ , . . .n] }| { E N A B L E | D I S A B L E } T R I G G E R{ A L L | t r i g g e r[ , . . .n] }}}< c o l u m n _ d e f i n i t i o n > : : = { c o l u m n _ n a m e d a t a _ t y p e }[ N U L L | N O T N U L L ][ ID E N T I T Y [ ( s e e d[ , i n c r e m e n t] )[ N O T F O R R E P L I C A T I O N ] ][ R O W G U I D C O L ][ < c o l u m n _ c o n s t r a i n t > : : =[ C O N S T R A I N T c o n s t r a i n t _ n a m e]

Page 72: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

{ { P R I M A R Y K E Y | U N I Q U E }[ C L U S T E R E D | N O N C L U S T E R E D ][ W I T H [ F I L L F A C T O R = f i l l f a c t o r][[ ,] { S O R T E D _ D A T A| S O R T E D _ D A T A _ R E O R G } ]][ O N f i l e g r o u p ]| [ F O R E I G N K E Y ]R E F E R E N C E S r e f _ t a b l e[ ( r e f _ c o l u m n ) ][ N O T F O R R E P L I C A T I O N ]| D E F A U L T c o n s t a n t _ e x p r e s s i o n| C H E C K [ N O T F O R R E P L I C A T I O N]( l o g i c a l _ e x p r e s s i o n )}] [ . . .n]< t a b l e _ c o n s t r a i n t > : : = [ C O N S T R A I N T c o n s t r a i n t _ n a m e]{ [ { P R I M A R Y K E Y | U N I Q U E }[ C L U S T E R E D | N O N C L U S T E R E D ]{ ( c o l u m n[ ,...n] ) }[ W I T H [ F I L L F A C T O R = f i l l f a c t o r][[ ,] { S O R T E D _ D A T A| S O R T E D _ D A T A _ R E O R G } ]

Page 73: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

][ O N f i l e g r o u p]]| F O R E I G N K E Y[ ( c o l u m n[ ,...n] )]R E F E R E N C E S r e f _ t a b l e [ ( r e f _ c o l u m n[ , . . .n] )][ N O T F O R R E P L I C A T I O N ]| D E F A U L T c o n s t a n t _ e x p r e s s i o n[ F O R c o l u m n]| C H E C K [ N O T F O R R E P L I C A T I O N ]( s e a r c h _ c o n d i t i o n s )}变 量

T a b l e T a b l e 是 要 修 改 的 表 格 名 称 。WITH C H E C K| WI T H N O C H E C K W I T H C H E C K| WI T H N O C H E C K 可 确 定 是 否 检

查 了 新 约 束 的 有 效 性 (WI T H C H E C K 是 新 约 束的 缺 省 值 )或 是 重 新 启 动 (W I T H N O C H E C K 是重 新 启 动 约 束 的 缺 省 值 )FO R E I G N K E Y 或 者CHE C K 约 束 。

ALT E R C O L U M N A L T E R C O L U M N 是 指 修 改 的 列 。col u m n _ n a m e c o l u m n _ n a m e 是 要 修 改 、 增 加 , 或 撤 消 的 列

Page 74: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

名 。 该 变 量 不 能 是 文 本 、 图 像 、 nte x t、 时间 戳 、 表 格 的 ROW G U I D C O L ;已 计 算 的 列 、 已复 制 的 列 、 已 索 引 的 列 ; 列 名 不 能 用 于CHE C K、FO R E I G N K E Y,UN I Q U E 或 PR I M A R Y K E Y约 束 中 , (可 以 改 变 约 束 中 可 变 长 度 列 的 长度 );列 名 不 能 与 缺 省 值 一 起 使 用 。

new _ d a t a _ t y p e N e w D a t a T y p e 指 修 改 列 中 的 新 数 据 类 型 。pr e c i s i o n p r e c i s i o n 是 指 数 据 类 型 的 精 度 。sc a l e s c a l e 是 数 据 类 型 的 尺 度 。[{ AD D| DRO P} RO W G U I D C O L] 这 些 变 量 说 明 列 是 从 添 加 到 表 格 中 或 是 从

表 格 中 删 去 。 并 说 明 列 是 具 有 ROW G U I D C O L属 性 ( 全 局 唯 一 标 识 符 列 可 以 分 配 给 唯 一标 识 符 列 的 全 局 唯 一 标 识 符 列 )

AD D A D D 表 示 添 加 列 的 定 义 、 已 计 算 的 列 定 义或 表 格 约 束 。

ASc o m p u t e d _ c o l u m n _ e x p r e s s i o n

计 算 列 是 虚 拟 列 , 是 新 的 可 选 项 , 现 在可 以 存 储 和 检 索 计 算 列 , 但 是 不 能 INS E R T或 UPDA T E 它 。 不 能 将 计 算 列 用 作 关 键 列 ,也 不 能 用 于 PRIM A R Y K E Y, UN I Q U E, FO R E I G NK E Y 或 CHECK 约 束 。

DR O P [ CO N S T R A I N T ]co n s t r a i n t| C O L U M N c o l u m n

D R O P C O N S T R A I N T 或 C O L U M N 表 示 将 约 束 或列 从 表 格 中 删 除 。

Page 75: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N N 表 示 前 面 的 项 可 重 复CH E C K| NO C H E C K C H E C K 选 项 启 用 约 束 , 而 NOC H E C K 选 项 禁 用

约 束 。 禁 用 约 束 表 示 进 行 INS E R T 或 UP D A T E时 不 能 使 用 约 束 条 件 , 这 个 变 量 只 适 用 于FORE I G N K E Y 和 C H E C K 约 束 。

AL L A L L 是 用 CHECK 或 NO C H E C K 选 项 启 用 或 禁 用所 有 的 约 束 。

{E N A B L E| DI S A B L E } T R I G G E R E N A B L E T R I G G E R 或 DI S A B L E T R I G G E R 表 示触 发 器 仍 作 为 数 据 库 中 的 一 个 对 象 , 但 是如 果 禁 用 它 , IN S E R T、 U P D A T E 和 DELE T E 语句 将 不 能 启 动 触 发 器 。

AL L AL L 是 用 ENA B L E T R I G G E R 或 DI S A B L ET R I G G E R 选 项 启 用 或 禁 用 所 有 触 发 器 。

tr i g g e r t r i g g e r 是 要 启 用 或 禁 用 的 触 发 器 名 。da t a _ t y p e D a t a _ t y p e 是 新 列 的 SQL S e r v e r 数 据 类 型 。

如 果 用 唯 一 标 识 符 数 据 类 型 , 且 表 格 中 已有 几 行 , 就 可 以 用 DEF A U L T 约 束 和 NEW I D ( )函 数 为 已 存 在 的 行 在 新 列 中 生 成 唯 一 的 标识 符 值 。

NU L L| NO T N U L L N U L L 或 者 NOT N U L L 确 定 列 能 否 存 储 Nu l l值 。 如 果 表 格 中 有 行 , 且 使 用 NO T N U L L,则 使 用 DEF A U L T 约 束 WI T H V A L U E S, 已 有 行

Page 76: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

的 新 列 将 自 动 包 含 缺 省 值 。ID E N T I T Y I D E N T I T Y 是 一 个 属 性 , 它 可 用 来 将 递 增 的

整 数 放 在 新 列 中 。 如 果 表 格 中 已 有 行 , 用IDE N T I T Y 属 性 添 加 一 列 , 为 已 有 行 添 加 的新 列 将 自 动 为 已 有 的 行 在 每 个 新 列 中 包 含递 增 的 整 数 。 在 将 来 添 加 新 行 时 , 也 能 执行 上 述 操 作 。

se e d s e e d 指 用 IDE N T I T Y 属 性 添 加 一 列 时 第 一 行的 整 数 值 , 它 也 表 明 新 IDE N T I T Y 列 中 的 值从 哪 儿 开 始 。如 果 不 用 此 关 键 词 ,SQL S e r v e r就 把 值 1 放 到 该 列 中 。

In c r e m e n t 如 果 用 IDE N T I T Y 属 性 添 加 一 列 , 当 添 加 新行 时 , Inc r e m e n t 就 是 新 IDE N T I T Y 列 中 要增 加 的 增 量 。 如 果 不 用 Inc r e m e n t , S Q LS e r v e r 将 对 最 后 添 加 的 行 中 的 值 加 1。

NOT F O R R E P L I C A T I O N 如 果 使 用 复 制 , 并 用 ID E N T I T Y 属 性 添 加 一列 , 可 用 该 变 量 通 知 SQL S e r v e r, 当 SQ LS e r v e r 系 统 复 制 注 册 (例 如 sql r e p l )将 数据 插 入 到 表 格 中 时 , 不 要 施 加 ID E N T I T Y 条件 。

CON S T R A I N T C O N S T R A I N T 选 项 是 指 如 何 建 立 PRI M A R YK E Y、UN I Q U E、FO R E I G N K E Y、CH E C K 或 DE F A U L T

Page 77: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

约 束 。 CON S T R A I N T 用 来 保 持 数 据 的 完 整 性 ,添 加 CON S T R A I N T 可 以 建 立 索 引 。

con s t r a i n t _ n a m e c o n s t r a i n t _ n a m e 是 新 建 立 CON S T R A I N T 的名 称 。 如 果 没 给 约 束 命 名 , 那 么 SQL S e r v e r将 为 其 命 名 。

PRI M A R Y K E Y P R I M A R Y K E Y 是 一 个 约 束 (一 个 表 格 中 只 有一 个 ) , 它 在 一 列 或 几 列 中 建 立 唯 一 的 索引 , 并 将 一 列 或 几 列 指 定 为 表 格 中 主 键 。

UN I Q U E 列 值 可 以 是 表 中 唯 一 的 值 。 但 不 必 指 定 为主 键 。 UNI Q U E 约 束 可 建 立 列 中 唯 一 的 索 引 。

CLU S T E R E D | N O N C L U S T E - R E D 如 果 要 建 立 PR I M A R Y K E Y ( 缺 省 值 为CLU S T E R E D ) 或 UN I Q U E ( 缺 省 值 为 NO N -C L U S T E R E D ) 约 束 , CLU S T E R E D 或NO N C L U S T E R E D 可 确 定 添 加 何 种 索 引 。 如 果已 有 成 簇 索 引 , 就 不 能 使 用 CL U S T E R E D, 除非 删 除 了 现 有 的 CL U S T E R E D 索 引 , 因 为 一个 表 格 中 只 能 有 一 个 索 引 。 如 果 已 有 一 个成 簇 索 引 , 再 添 加 PRI M A R Y K E Y 约 束 , 该变 量 的 缺 省 值 就 是 NON C L U S T E R E D。

WI T H F I L L F A C T O R = f i l l f a c t o r W I T H F I L L F A C T O R 说 明 每 一 索 引 页 中 有 多 少数 据 。 可 选 值 是 1 到 10 0, 缺 省 值 为 0, 以百 分 数 表 示 。 填 充 因 子 越 低 , 页 中 索 引 项

Page 78: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

可 用 的 空 间 就 越 多 , 这 样 , 页 中 就 为 插 入新 行 留 出 了 更 多 的 空 间 , 也 就 不 需 SQ LS e r v e r 为 新 行 分 配 较 多 的 空 间 。

SOR T E D _ D A T A | S O R T E D _ D A T A _ R E O R G

S O R T E D D A T A 通 知 SQ L S e r v e r 数 据 已 分 类 ,当 添 加 成 簇 索 引 时 , SQ L S e r v e r 就 不 必 对数 据 分 类 。 SQL S e r v e r 将 进 行 检 查 , 并 通过 检 查 索 引 值 来 确 保 数 据 按 分 类 排 列 。 如果 检 查 失 败 , 将 返 回 错 误 , ALT E R t a b l e 也失 败 , 另 一 方 面 , SOR T E D _ D A T A _ R E O R G 通 知SQL S e r v e r 数 据 已 经 分 类 , 只 需 在 磁 盘 上重 新 组 织 这 些 数 据 。 当 使 用 FIL L F A C T O RO P T I O N 时 使 用 SOR T E D _ D A T A _ R E O R G 可 改 变数 据 在 页 中 的 存 储 方 式 。 用 DB C CS H O W C O N T I G 可 确 认 表 格 是 否 已 经 分 段 , 是否 需 要 重 新 组 织 。

ON f i l e g r o u p O N f i l e g r o u p 可 决 定 为 约 束 建 立 的 索 引 将驻 留 在 磁 盘 的 哪 一 部 分 。 如 果 不 用 ONf i l e g r o u p, 索 引 将 与 表 格 放 在 同 一 文 件 组中 。 当 添 加 PRI M A R Y K E Y C L U S T E R E D 索 引或 UNI Q U E C L U S T E R E D 索 引 时 , 使 用 ONf i l e g r o u p 会 出 现 下 面 的 情 况 :由 于 成 簇 索引 的 数 据 位 于 成 簇 索 引 的 底 部 , 整 个 表 格

Page 79: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

将 向 指 定 的 文 件 组 移 动 。FOR E I G N K E Y . . . R E F E R E N C E S F O R E I G N K E Y . . . R E F E R E N C E S 可 通 过 确 保 列

中 的 每 一 项 位 于 引 用 表 格 的 列 中 , 来 建 立保 持 引 用 完 整 性 的 约 束 。

re f _ t a b l e r e f _ t a b l e 是 FOR E G I G N K E Y 约 束 所 引 用 的表 格 名 称 。

ref _ c o l u m n r e f _ c o l u m n 是 FO R E I G N K E Y 约 束 所 引 用 的列 。

NOT F O R R E P L I C A T I O N 如 果 正 使 用 复 制 , 并 用 IDE N T I T Y 属 性 添 加一 列 , 用 NOT F O R R E P L I C A T I O N 通 知 SQ LS e r v e r, 当 SQ L S e r v e r 系 统 复 制 注 册 (例如 sql r e p l ) 将 数 据 插 入 表 格 时 不 施 加IDE N T I T Y 条 件 。

DE F A U L T D E F A U L T 是 一 种 约 束 ,如 果 没 有 指 定 INS E R T列 中 的 值 , 它 决 定 插 入 列 中 的 值 。 由 于 一列 中 只 能 有 一 个 值 , 当 列 中 带 有 时 间 戳 数据 类 型 、 IDE N T I T Y 属 性 或 另 一 个 DEF A U L T约 束 时 , 不 能 使 用 DE F A U L T 约 束 。 如 果 需添 加 另 一 个 DE F A U L T 约 束 , 必 须 撤 消 旧 的缺 省 值 。 DEF A U L T 可 以 将 数 值 添 加 至 已 有 行的 新 列 中 , 这 一 方 面 它 的 功 能 很 强 。

VA L U E S V A L U E S 可 和 DEF A U L T 一 起 使 用 , 是 已 有 行

Page 80: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

的 新 值 , 它 还 可 用 于 以 ALT E R T A B L E 添 加的 新 列 。

con s t a n t _ e x p r e s s i o n c o n s t a n t _ e x p r e s s i o n 可 和 DE F A U L T 一 起 使用 , 是 列 的 缺 省 值 , 它 可 以 是 常 数 、 NU L L或 系 统 函 数 。

CH E C K C H E C K 是 一 种 约 束 , 它 限 制 可 以 插 入 到 列 中的 值 。

log i c a l _ e x p r e s s i o n l o g i c a l _ e x p r e s s i o n 可 以 引 用 同 一 行 中 其它 的 列 , 其 返 回 值 为 tr u e 或 fa l s e。

c o l u m n[ ,. . . n] co l u m n 表 示 约 束 的 列 目 录 。FOR c o l u m n F O R c o l u m n 是 和 DE F A U L T 约 束 一 起 使 用 的

列 。

示 例下 面 是 个 ALT E R T A B L E 语 句 的 示 例 :

A L T E R T A B L E M y T a b l e A D D c o l 1 i n t n u l lC O N S T R A I N T m y c o n s t r a i n t U N I Q U EG O

本 例 中 , 单 独 的 约 束 和 列 添 加 到 表 格 中 。

Page 81: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A L T E R T R I G G E R

T r a n s a c t - S Q L 现 在 能 修 改 触 发 器 对 象 , 不 必 为 修 改 触 发 器 对 象 而 从 数 据 库中 和 sys c o m m e n t s 系 统 表 中 删 除 它 。 修 改 触 发 器 的 功 能 很 重 要 , 因 为 触 发 器 携带 了 其 它 参 数 和 许 可 , 一 旦 撤 消 对 象 , 参 数 与 许 可 就 将 被 删 除 。 只 修 改 对 象 而不 是 删 除 它 , 将 保 留 与 对 象 有 关 的 参 数 和 许 可 , 如 果 使 用 CR E E T E T R I G G E R 语 句的 WI T H A P P E N D 选 项 , 那 么 每 个 Upd a t e, In s e r t D e l e t e 可 以 有 多 个 触 发 器 ,这 意 味 着 每 个 Up d a t e、In s e r t、D e l e t e 可 以 启 动 多 个 触 发 器 。 这 种 WI T H A P P E N D功 能 包 含 在 由 sp_ d b c m p t l e v e l 设 置 的 7.0 级 别 的 兼 容 中 。 WITH A P P E N D 只 需 要65 或 60 级 别 的 兼 容 , 因 为 当 兼 容 级 别 达 到 70 时 , WIT H A P P E N D 就 是 缺 省 操 作 。

触 发 器 受 其 可 使 用 的 Tra n s a c t - S Q L 语 句 的 限 制 , 触 发 器 中 不 能 使 用 下 列Tra n s a c t - S Q L 语 句 :

· A L T E R D A T A B A S E · LO A D L O G· A L T E R T A B L E · R E S T O R E L O G· A L T E R T R I G G E R · R E V O K E· C R E A T E D A T A B A S E · S E L E C T I N T O (因 为 该 语 句 创 建 了 表 格 )· C R E A T E D E F A U L T· C R E A T E P R O C E D U R E · T R U N C A T E T A B L E· C R E A T E R U L E · A L T E R P R O C E D U R E· C R E A T E T A B L E · A L T E R V I E W

Page 82: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

· CR E A T E T R I G G E R · C R E A T E I N D E X· D E N Y · C R E A T E T A B L E· D I S K I N I T · C R E A T E V I E W· D R O P D A T A B A S E · D I S K R E S I Z E· D R O P D E F A U L T · D R O P I N D E X· D R O P P R O C E D U R E · D R O P T A B L E· D R O P R U L E · G R A N T· D R O P T R I G G E R · R E S T O R E D A T A B A S E· D R O P V I E W · R E C O N F I G U R E· L O A D D A T A B A S E · U P D A T E S T A T I S T I C S

语 法

A L T E R T R I G G E R t r i g g e r _ n a m eO N t a b l e[ W I T H E N C R Y P T I O N ]{ F O R { [ ,] [ I N S E R T ] [ ,] [ U P D A T E ] [ ,] [ D E L E T E ] }[ N O T F O R R E P L I C A T I O N ]A Ss q l _ s t a t e m e n t [ . . .n]} | { F O R { [ ,] [ I N S E R T ] [ ,] [ U P D A T E] }[ N O T F O R R E P L I C A T I O N ]A S

Page 83: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I F U P D A T E ( c o l u m n )[ { A N D | O R } U P D A T E ( c o l u m n ) [ , . . .n] ]s q l _ s t a t e m e n t[ . . .n] }

变 量

T r i g g e r N a m e 要 修 改 的 触 发 器 名 。Ta b l e N a m e 触 发 器 执 行 时 所 在 的 表 格 。WIT H E N C R Y P T I O N 加 密 sy s c o m m e n t s 系 统 表 中 的 代 码 。{[ ,][ IN S E R T][ ,][ UP D A T E] [ ,][ DE L E T E] }| {[ ,][ INS E R T][ ,][ UP D A T E] }

指 明 启 动 触 发 器 的 语 句 的 关 键 词 。

NOT F O R R E P L I C A T I O N 如 果 与 复 制 有 关 的 sq l r e p l 注 册 ID 修改 了 表 格 , 就 不 启 动 触 发 器 。

AS 表 示 下 一 个 语 句 是 Tra n s a c t - S Q L 语句 。

Tra n s a c t - S Q L s t a t e m e n t ( s ) 是 触 发 器 的 Tra n s a c t - S Q L 语 句 。IF U P D A T E ( C o l u m n N a m e ) 根 据 是 否 对 指 定 列 进 行 INS E R T 或

UP D A T E, 来 提 供 IF 逻 辑 。Col u m n N a m e 检 查 IN S E R T 操 作 或 UPD A T E 操 作 的 列

名 。

Page 84: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 ALTE R T R I G G E R 语 句 的 示 例 :

A L T E R T R I G G E R m y t r i g g e rO N t a b l e n a m eF O R I N S E R TA S R A I S E R R O R ( ′ m y t r i g g e r e r r o r′ , 1 , 2 )

本 例 中 , 修 改 了 触 发 器 myt r i g g e r。

A L T E R V I E W

A L T E R V I E W 能 修 改 视 图 对 象 , 而 不 必 为 修 改 视 图 对 象 而 将 该 对 象 从 数 据 库中 或 sys c o m m e n t s 系 统 表 中 删 除 它 。 修 改 视 图 的 功 能 很 重 要 , 因 为 视 图 携 带 了其 他 参 数 和 许 可 , 删 除 对 象 时 , 这 些 参 数 和 许 可 也 被 删 除 , 只 修 改 对 象 而 不 是删 除 它 , 将 保 留 与 对 象 有 关 的 参 数 和 许 可 。 SE L E C T 语 句 中 不 要 引 用 临 时 表 , 也不 能 包 括 ORD E R B Y 子 句 、 COM P U T E 子 句 、 COM P U T E B Y 子 句 或 关 键 词 IN T O。

语 法

A L T E R V I E W v i e w _ n a m ec o l u m n [ , . . .n] )][ W I T H E N C R Y P T I O N ]

Page 85: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A Ss e l e c t _ s t a t e m e n t [ W I T H C H E C K O P T I O N]

变 量

v i e w _ n a m e 要 修 改 的 视 图 名Co l u m n[ ,⋯ n] Co l u m n 是 列 名 的 名 称 , 用 逗 号 分 隔

开 , 是 视 图 的 一 部 分 。WIT H E N C R Y P T I O N 加 密 sy s c o m m e n t s 系 统 表 中 的 对 象 。AS 表 示 下 一 个 语 句 是 Tran s a c t - S Q L 语

句 。se l e c t _ s t a t e m e n t [ WI T H C H E C KO P T I O N]

S E L E C T 语 句 是 视 图 的 基 础 , WITHC H E C K O P T I O N 表 示 SQ L S e r v e r 将 进行 检 查 , 以 确 保 视 图 的 任 意 数 据 修 改语 句 都 符 合 视 图 中 sel e c t _ s t a t e m e n t包 含 的 边 界 设 置 。

示 例下 面 是 使 用 ALT E R V I E W 的 语 句 的 示 例 :

C R E A T E V I E W M y V i e wA S

Page 86: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T c o l u m n 1 , c o l u m n 2F R O M M y T a b l e

本 例 中 , 修 改 了 视 图 , 而 没 有 删 除 并 再 创 建 它 。

A N D

A N D 语 句 可 串 接 两 个 条 件 。 当 两 个 条 件 都 为 真 时 , 它 也 为 真 。 SQL S e r v e r中 A N D 运 算 符 先 于 其 他 逻 辑 运 算 符 进 行 , 如 果 使 用 括 号 , 将 影 响 执 行 逻 辑 运 算符 的 顺 序 。

语 法

[ N O T] < p r e d i c a t e > A N D [ N O T] < p r e d i c a t e >[ ,⋯ n]

变 量

N O T N O T 是 布 尔 表 达 式 的 否 定 指 示 符Pre p r e d i c a t e[ ,⋯ ] Pre d i c a t e 也 称 为 表 达 式 , 用 逗 号 分 隔

开 , 它 返 回 TR U E 或 FA L S E。示 例下 面 是 AN D 语 句 的 示 例 :

Page 87: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T *F R O M M y T a b l eW H E R E c o l u m n 1 = c o l u m n 2A N D c o l u m n 3 = c o l u m n 4

本 例 中 , 会 选 择 出 表 格 中 的 Col u m n 1 等 于 Co l u m n 2,且 Col u m n 3 等 于 Co l u m n4 的 行 。

A N Y

使 用 关 键 字 AN Y, 将 返 回 TR U E 和 FA L S E, 即 使 与 子 查 询 程 序 一 起 使 用 也 是如 此 (不 返 回 子 查 询 程 序 的 行 , 只 返 回 TR U E 或 FA L S E )。

当 子 查 询 中 检 索 出 的 数 据 与 表 达 式 中 的 比 较 相 符 时 返 回 TR U E。当 对 子 查 询 程 序 中 所 有 的 行 进 行 比 较 出 现 错 误 时 , 返 回 FAL S E, 子 查 询 程 序

没 有 找 到 行 时 也 返 回 FAU I S E。语 法

[ N O T ] e x p r e s s i o n { = | < > | ! = | > | > = | ! > | > | < = | ! < }{ S O M E | A N Y } ( s u b q u e r y )变 量

N O T NOT 是 布 尔 表 达 式 的 否 定 指 示 符 。

Page 88: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

E x p r e s s i o n 表 达 式 可 以 是 列 名 、常 数 、函 数 、 变 量 、子 查 询 程 序 、 几 个 常 数 或 几 个 函 数 。

{=| < > | ! = | > | > = | ! > | < | < = | ! < } 这 些 符 号 表 示 算 术 运 算 符 。su b q u e r y 子 查 询 程 序 中 不 允 许 出 现 ORD E R B Y 子

句 、 CO M P U T E 子 句 、 关 键 词 IN T O。

示 例下 面 是 关 键 字 AN Y 的 示 例 :

I F @ m y v a r > = A N Y ( S E L E C T a u _ l n a m e F R O M a u t h o r s )P R I N T ′ O K , t h i s v a l u e i s n o t l e s s t h a n a l l t h e n a m e s i n t h e t a b l e′E L S EP R I N T ′ S o r r y , y o u c a n n o t u s e a v a l u e l e s s t h a n a l l t h e n a m e s i n t h e t a b l e′

本 例 中 , 返 回 TR U E。

A P P _ N A M E

如 果 程 序 设 置 此 函 数 , 执 行 的 对 话 将 返 回 最 大 长 度 的 字 符 型 或 可 变 字 符 型程 序 名 。 用 此 函 数 可 以 确 定 哪 个 客 户 应 用 程 序 在 运 行 Mic r o s o f t S Q L S e r v e r。

语 法

Page 89: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A P P _ N A M E( )

示 例下 面 是 APP _ N A M E ( )函 数 的 示 例 :

S E L E C T A P P _ N A M E ( )

本 例 中 , 将 选 择 出 返 回 “ MS S Q L Q u e r y A n a l y z e r” 的 AP P _ N A M E 的 内 容 ,因 为 是 在 Que r y A n a l y z e r 中 执 行 程 序 而 且 Que r y A n a l y z e r 设 置 了 此 函 数 。

A S C I I

A S C I I 函 数 返 回 的 整 数 表 示 字 符 表 达 式 最 左 边 的 字 符 的 ASC I I 代 码 值 。语 法

A S C I I ( c h a r a c t e r _ e x p r e s s i o n )

字 母 变 量 cha r a c t e r _ e x p r e s s i o n 可 以 是 常 量 、 变 量 或 列 。示 例下 面 是 ASC I I 函 数 的 示 例 :

S E L E C T A S C I I ( " A B " )

Page 90: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 返 回 的 “ 65” 是 字 符 A 的 ASC I I 码 值 , 因 为 不 管 A 字 符 后 面 放 置什 么 字 符 , 都 返 回 字 符 表 达 式 中 最 左 边 的 字 符 的 AS C I I 码 值 。

A S I N

数 学 函 数 AS I N 返 回 以 弧 度 表 示 的 角 度 。 该 函 数 通 常 是 指 反 正 弦 函 数 。 如 果看 到 错 误 信 息 “ 域 有 差 错 ” ,Mi c r o s o f t S Q L S e r v e r 是 指 角 度 值 不 在 AS I N 函 数的 有 效 范 围 内 。

语 法

A S I N ( f l o a t _ e x p r e s s i o n )

变 量 flo a t _ e x p r e s s i o n 是 浮 点 型 数 据 。示 例下 面 是 ASIN 函 数 的 示 例 :

S E L E C T A S I N ( . 3 4 5 9 8 6 )

本 例 中 ,正 弦 值 为 0.3 4 5 9 8 6 的 浮 点 表 达 式 ,其 返 回 值 0.3 5 3 2 8 9 4 8 5 9 2 3 4 8 3 0 8是 以 弧 度 表 示 的 角 度 。

Page 91: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A T A N

数 学 函 数 AI A N 返 回 以 弧 度 表 示 的 角 度 , 此 角 度 的 正 切 是 作 为 变 量 传 递 给 该函 数 的 浮 点 表 达 式 , 该 函 数 也 称 为 反 正 切 函 数 。

语 法

A T A N ( f l o a t _ e x p r e s s i o n )

变 量 flo a t e x p r e s s i o n 是 浮 点 型 数 据 。示 例下 面 是 ATAN 函 数 的 示 例 :

S E L E C T A T A N ( 0 . 3 4 5 9 8 6 )

本 例 中 ,正 切 值 为 0.3 4 5 9 8 6 的 浮 点 表 达 式 ,其 返 回 值 0.3 3 3 0 9 4 4 0 6 9 4 2 0 6 4 2 1是 以 弧 度 表 示 的 角 度 。

A T N 2

数 学 函 数 AT N 2 返 回 角 度 的 弧 度 值 , 此 角 度 的 正 切 位 于 两 个 作 为 变 量 传 递 给函 数 的 浮 点 表 达 式 之 间 , 该 函 数 也 称 为 反 正 切 函 数 。

Page 92: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

A T N 2 ( f l o a t _ e x p r e s s i o n , f l o a t _ e x p r e s s i o n )

变 量 flo a t e x p r e s s i o n 是 浮 点 型 数 据 , 且 必 须 给 出 两 个 浮 点 表 达 式 。示 例下 面 是 ATN2 函 数 的 示 例 :

S E L E C T A T N 2 ( . 3 4, . 3 5 )

本 例 中 , 返 回 值 0.7 7 0 9 0 6 4 2 4 3 3 1 9 4 8 3 4 是 以 弧 度 表 示 的 角 度 , 该 角 度 的 正切 位 于 两 个 浮 点 表 达 式 0. 3 4 和 0.3 5 之 间 。

A V G

A V G 是 个 集 合 函 数 ,它 计 算 出 数 值 列 的 平 均 值 ,但 忽 略 给 定 表 达 式 中 的 空 值 。如 果 使 用 了 DI S T I N C T, 则 对 重 复 的 值 只 取 一 次 进 行 平 均 。

语 法

A V G ([ A L L | D I S T I N C T] e x p r e s s i o n )变 量

Page 93: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A L L 集 合 函 数 适 用 于 所 有 数 值 , AL L 是 缺 省 值 。DI S T I N C T 对 重 复 的 值 只 取 一 次 进 行 平 均 。exp r e s s i o n 表 达 式 可 以 是 常 数 、 列 名 、 函 数 、 子 查 询 程 序 、

算 术 运 算 符 、 按 位 运 算 符 和 字 符 串 运 算 符 。

示 例下 面 是 AV G 集 合 函 数 的 示 例 :

S E L E C T A V G ( a g e )F R O M t a b l e 1

本 例 中 , 对 表 ta b l e 1 中 的 “ ag e” 列 进 行 平 均 并 返 回 。 如 果 任 意 行 有 NU L L值 , 则 此 行 被 忽 略 。

B A C K U P

B A C K U P 语 句 可 备 份 整 个 数 据 库 , 事 务 处 理 记 录 、 文 件 或 文 件 组 。语 法备 份 整 个 数 据 库 的 语 法 :B A C K U P D A T A B A S E { d a t a b a s e _ n a m e | @ d a t a b a s e _ n a m e _ v a r }T O < b a c k u p _ d e v i c e > [ , . . .n][ W I T H

Page 94: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ B L O C K S I Z E = { b l o c k s i z e | @ b l o c k s i z e _ v a r i a b l e } ][[ ,] D E S C R I P T I O N = { t e x t | @ t e x t _ v a r i a b l e }][[ ,] D I F F E R E N T I A L][[ ,] E X P I R E D A T E = { d a t e | @ d a t e _ v a r }| R E T A I N D A Y S = { d a y s | @ d a y s _ v a r } ][[ ,] F O R M A T | N O F O R M A T ][[ ,] { I N I T | N O I N I T }][[ ,] M E D I A D E S C R I P T I O N = { t e x t | @ t e x t _ v a r i a b l e }][[ ,] M E D I A N A M E = { m e d i a _ n a m e | @ m e d i a _ n a m e _ v a r i a b l e }][[ ,] [ N A M E = { b a c k u p _ s e t _ n a m e | @ b a c k u p _ s e t _ n a m e _ v a r } ][[ ,] { N O S K I P | S K I P }][[ ,] { N O U N L O A D | U N L O A D }][[ ,] [ R E S T A R T ][[ ,] S T A T S [ = p r e c e n t a g e]] ]语 法备 份 属 于 某 数 据 库 的 文 件 或 文 件 组 的 语 法 :B A C K U P D A T A B A S E { d a t a b a s e _ n a m e | @ d a t a b a s e _ n a m e _ v a r }< f i l e _ o r _ f i l e g r o u p > [ ,...n]T O < b a c k u p _ d e v i c e > [ , . . .n][ W I T H[ B L O C K S I Z E = { b l o c k s i z e | @ b l o c k s i z e _ v a r i a b l e } ]

Page 95: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[[ ,] D E S C R I P T I O N = { t e x t | @ t e x t _ v a r i a b l e }][[ ,] E X P I R E D A T E = { d a t e | @ d a t e _ v a r }| R E T A I N D A Y S = { d a y s | @ d a y s _ v a r } ][[ ,] F O R M A T | N O F O R M A T ][[ ,] { I N I T | N O I N I T }][[ ,] M E D I A D E S C R I P T I O N = { t e x t | @ t e x t _ v a r i a b l e }][[ ,] M E D I A N A M E = { m e d i a _ n a m e | @ m e d i a _ n a m e _ v a r i a b l e }][[ ,] N A M E = { b a c k u p _ s e t _ n a m e | @ b a c k u p _ s e t _ n a m e _ v a r } ][[ ,] { N O S K I P | S K I P }][[ ,] { N O U N L O A D | U N L O A D }][[ ,] [ R E S T A R T ][[ ,] S T A T S [ = p r e c e n t a g e]]]语 法备 份 事 务 处 理 记 录 的 语 法 :B A C K U P L O G { d a t a b a s e _ n a m e | @ d a t a b a s e _ n a m e _ v a r }{[ W I T H{ N O _ L O G | T R U N C A T E _ O N L Y } ]}|{

Page 96: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T O < b a c k u p _ d e v i c e > [ , . . .n][ W I T H[ B L O C K S I Z E = { b l o c k s i z e | @ b l o c k s i z e _ v a r i a b l e } ][[ ,] D E S C R I P T I O N = { t e x t | @ t e x t _ v a r i a b l e }][[ ,] E X P I R E D A T E = { d a t e | @ d a t e _ v a r }| R E T A I N D A Y S = { d a y s | @ d a y s _ v a r } ][[ ,] F O R M A T | N O F O R M A T ][[ ,] { I N I T | N O I N I T }][[ ,] M E D I A D E S C R I P T I O N = { t e x t | @ t e x t _ v a r i a b l e }][[ ,] M E D I A N A M E = { m e d i a _ n a m e | @ m e d i a _ n a m e _ v a r i a b l e }][[ ,] [ N A M E = { b a c k u p _ s e t _ n a m e | @ b a c k u p _ s e t _ n a m e _ v a r } ][[ ,] N O _ T R U N C A T E ][[ ,] { N O S K I P | S K I P }][[ ,] { N O U N L O A D | U N L O A D }][[ ,] [ R E S T A R T ][[ ,] S T A T S [ = p r e c e n t a g e]]]}< b a c k u p _ d e v i c e > : : ={{ b a c k u p _ d e v i c e _ n a m e | @ b a c k u p _ d e v i c e _ n a m e _ v a r }|

Page 97: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

{ D I S K | T Y P E | P I P E } ={′ t e m p _ b a c k u p _ d e v i c e ′ |@ t e m p _ b a c k u p _ d e v i c e _ v a r }}< f i l e _ o r _ f i l e g r o u p > : : ={F I L E = { l o g i c a l _ f i l e _ n a m e | @ l o g i c a l _ f i l e _ n a m e _ v a r }|F I L E G R O U P = { l o g i c a l _ f i l e g r o u p _ n a m e | @ l o g i c a l _ f i l e g r o u p _ n a m e _ v a r }}

变 量

D A T A B A S E 如 果 使 用 该 变 量 , 就 命 令 Mic r o s o f t S Q L S e r v e r对 数 据 库 进 行 完 整 的 备 份 。 也 可 以 和 文 件 或 文 件组 列 表 一 起 使 用 该 变 量 , 这 将 限 定 将 数 据 库 备 份到 指 定 的 文 件 或 文 件 组 中 。 现 在 , Mic r o s o f t S Q LS e r v e r 7 在 恢 复 备 份 文 件 时 , 只 备 份 足 以 建 立 数据 库 的 记 录 , 并 带 有 完 整 的 事 务 处 理 。

dat a b a s e n a m e 此 变 量 是 包 含 在 备 份 程 序 中 的 数 据 库 名 , 可 以 用变 量 或 常 数 串 的 形 式 传 递 数 据 库 名 称 。dat a b a s e n a m e = @ d b v a r i a b l e 或 者 da t a b a s e n a m e =p l a i n t e x t n a m e。

Page 98: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

b a c k u p f i l e n a m e 此 变 量 是 由 sp_ a d d u m p d e v i c e 建 立 的 备 份 设 备 的逻 辑 名 称 。 该 名 称 必 须 遵 从 标 识 符 1~ 128 字 符 的命 名 规 则 。 可 以 用 变 量 或 常 数 串 的 形 式 传 递 备 份文 件 名 : ba c k u p f i l e n a m e = @ B F N v a r i a b l e 或ba c k u p f i l e n a m e = p l a i n t e x t n a m e

{ D I S K | T A P E |PI P E } = P A T H F I L E N A M E

此 变 量 允 许 自 由 直 接 备 份 至 文 件 , 而 不 必 使 用 逻辑 备 份 设 备 , 第 一 次 进 行 备 份 时 建 立 新 文 件 , 以后 再 进 行 备 份 时 可 以 使 用 该 文 件 。 关 于 临 时 备 份文 件 :DI S K D I S K 备 份 文 件 每 次 都 重 新 建 立 , 要 使 用完 整 的 路 径 和 文 件 名 。TA P E 对 于 有 效 的 Mic r o s o f tT a p e 格 式 数 据 集 , 使 用 WI T H F O R M A T。 要 使 用 完整 的 路 径 和 文 件 名 。 例 如 : \ \ .\ ta p e 0。 PIPE由 客 户 应 用 程 序 使 用 的 指 定 管 道 的 客 户 机 名 称 。可 以 用 变 量 或 常 量 字 符 串 的 形 式 传 递 临 时 备 份 文件 名 : te m p b a c k u p f i l e n a m e = @ T B F v a r i a b l e 或te m p b a c k u p f i l e n a m e = p l a i n t e x t n a m e

N O U N L O A D 此 变 量 可 确 定 备 份 后 磁 带 不 会 从 磁 带 驱 动 器 上 自动 卸 载 。 用 这 种 方 式 设 定 此 设 置 , 直 到 备 份 命 令中 给 出 改 变 此 设 置 的 UNLOA D 指 令 为 止 。

UN L O A D 此 变 量 确 定 备 份 完 成 以 后 , 磁 带 将 自 动 倒 回 并 卸载 , 这 是 磁 带 驱 动 器 的 缺 省 设 置 。 用 这 种 方 式 设定 此 设 置 , 直 到 备 份 命 令 中 给 出 改 变 此 设 置 的

Page 99: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N O U N L O A D 指 令 为 止 。DES C R I P T I O N 这 是 用 户 定 义 的 文 本 , 用 来 提 供 备 份 信 息 。 可 以

键 入 多 达 25 5 个 字 符 说 明 其 内 容 , 也 可 以 是 日 期或 与 以 后 备 份 的 标 识 符 有 关 的 任 何 其 他 信 息 。

BL O C K S I Z E 指 定 块 的 实 际 大 小 , 以 字 节 表 示 。 DI S K 不 用 TAPE只 有 在 用 FO R M A T 覆 盖 磁 带 时 才 使 用 , 否 则 备 份 程序 可 以 确 定 最 合 适 的 容 量 , 除 非 忽 略 此 变 量 , 自己 给 出 磁 带 的 块 容 量 。 PIPE 如 果 没 有 给 出 块 的 大小 , Mic r o s o f t S Q L S e r v e r 将 使 用 65, 53 6。

FO R M A T 此 变 量 改 写 备 份 文 件 和 介 质 标 题 。 可 以 利 用 格 式重 新 初 始 化 带 状 的 备 份 集 。 如 果 使 用 了 该 变 量 ,就 不 必 使 用 SKIP 和 IN I T 变 量 , 因 为 FO R M A T 可 自动 调 用 它 们 。 对 于 所 有 的 FOR M A T 命 令 , 该 变 量 还删 除 数 据 和 标 题 信 息 , 使 用 时 须 注 意 。 FO R M A T 也会 删 除 口 令 信 息 。

NO F O R M A T N O F O R M A T 和 F O R M A T 正 相 反 。 它 不 改 写 所 有 卷 上 的介 质 标 题 , 也 不 改 写 备 份 文 件 。

ME D I A N A M E 此 变 量 可 以 是 多 达 12 8 个 字 符 的 用 户 定 义 文 本 ,此 文 本 是 备 份 介 质 集 的 介 质 名 称 。 如 果 给 出 介 质名 称 , 媒 体 名 称 将 试 图 与 备 份 卷 的 介 质 名 称 相 匹配 。 如 果 没 有 给 出 介 质 名 称 , 或 使 用 了 SKIP 变 量 ,就 不 会 检 查 介 质 名 称 的 匹 配 情 况 。 如 果 该 变 量 与

Page 100: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F O R M A T 变 量 一 起 使 用 , MED I A N A M E 将 作 为 介 质 名称 , 和 NT 备 份 共 用 的 磁 带 必 须 有 介 质 名 称 。

MED I A D E S C R I P T I O N 此 变 量 可 有 25 5 个 字 符 , 是 描 述 介 质 集 的 用 户 定义 文 本 。

IN I T 此 变 量 指 要 覆 盖 设 备 上 的 所 有 数 据 , 只 有 IN I T 备份 文 件 在 DI S K 或 TA P E 介 质 上 。 因 为 它 不 覆 盖 介质 标 题 , 所 以 IN I T 与 FO R M A T 不 同 。 它 与 FOR M A T的 不 同 之 处 还 在 于 口 令 信 息 防 止 SQL S e r v e r 写 到设 备 上 。 用 FO R M A T 和 口 令 可 覆 盖 介 质 。 要 覆 盖 用口 令 保 护 或 加 密 的 介 质 , 可 指 定 WI T H F O R M A T 选项 。 如 果 介 质 上 的 所 有 备 份 集 还 没 有 到 期 (详 见EXP I R E D A T E 和 RE T A I N D A Y S 选 项 ), 或 者 BACK U P 语句 中 给 出 的 备 份 集 名 称 ( 如 果 提 供 该 名 称 ) 与 备份 介 质 (详 见 NA M E 选 项 )上 的 名 称 不 相 符 , 就 不 会覆 盖 备 份 介 质 。 注 意 , SQ L S e r v e r 备 份 可 以 和Win d o w s N T 备 份 共 存 于 磁 带 介 质 上 , 因 为Mic r o s o f t S Q L S e r v e r 7 . 0 备 份 格 式 符 合Mic r o s o f t T a p e F o r m a t ( M F T ), W i n d o w s N T 磁 带备 份 也 使 用 这 个 格 式 。 使 用 SKIP 选 项 可 忽 略 这 些检 查 。

NO I N I T 此 变 量 决 定 备 份 集 应 添 加 到 设 备 上 , 而 不 是 覆 盖最 后 一 次 备 份 。 如 果 不 指 明 IN I T 或 者 NO I N I T, 缺

Page 101: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

省 值 就 是 NO I N I T。EX P I R E D A T E 使 用 此 变 量 表 示 到 终 止 日 期 备 份 集 才 会 覆 盖 。 必

须 对 介 质 上 所 有 的 备 份 集 定 义 这 此 变 量 , 才 能 使它 有 效 。 用 SK I P 变 量 可 忽 略 此 变 量 。 可 以 用 变 量或 常 数 串 的 形 式 传 递 终 止 日 期 : e x p i r e d a t e =@ E v a r i a b l e 或 ex p i r e d a t e = " c o n s t a n t s t r i n g "

R E T A I N D A Y S 使 用 此 变 量 表 示 超 过 保 留 天 数 就 将 覆 盖 备 份 集 ,必 须 对 介 质 上 所 有 的 备 份 集 定 义 这 此 变 量 , 才 能使 它 有 效 。 用 SKIP 变 量 可 忽 略 此 变 量 。 可 以 用 变量 或 整 数 的 形 式 传 递 保 留 天 数 , re t a i n d a y s =@ R v a r i a b l e 或 r e t a i n d a y s = i n t e g e r 和 I N I T 一起 使 用 此 选 项 以 使 它 有 效 。 EXP I R E D A T E 或RE T A I N D A Y S 的 缺 省 值 为 sp_ c o n f i g u r e 配 置 设 置Med i a R e t e n t i o n。 防 止 覆 盖 的 设 置 只 由 Mic r o s o f tS Q L S e r v e r 用 来 防 止 覆 盖 其 备 份 。

DIF F E R E N T I A L 这 是 一 个 新 的 备 份 性 能 。 此 变 量 指 只 备 份 自 最 近一 次 全 集 备 份 以 来 修 改 的 数 据 库 部 分 , 此 选 项 可节 省 备 份 的 时 间 与 空 间 。 现 在 , 当 恢 复 备 份 文 件时 , Mi c r o s o f t S Q L S e r v e r 只 备 份 足 以 建 立 数 据库 的 记 录 , 并 带 有 完 整 的 事 务 处 理 。

NA M E 此 变 量 遵 从 1~ 12 8 个 字 符 标 识 符 的 规 则 , 可 以 留有 空 格 , 它 是 备 份 集 的 名 称 。

Page 102: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E S T A R T 这 是 Mi c r o s o f t S Q L S e r v e r 7 . 0 又 一 个 新 的 可 选功 能 。 它 允 许 Mic r o s o f t S Q L S e r v e r 重 新 启 动 中断 的 备 份 操 作 。要 执 行 此 重 新 启 动 功 能 ,用 REST A R T变 量 重 复 BA C K U P 语 句 , 它 只 适 用 于 TAPE。

NO S K I P 此 变 量 强 制 检 查 介 质 名 称 、 终 止 日 期 和 保 留 天 数 。如 果 给 出 了 NO S K I P 或 SKIP 变 量 , 当 创 建 了 备 份设 备 时 , 它 们 会 忽 略 任 何 已 定 义 的 设 置 。

SK I P 如 果 使 用 此 变 量 , 终 止 日 期 和 介 质 名 称 的 检 查 不用 来 防 止 覆 盖 备 份 集 和 备 份 集 中 不 匹 配 的 介 质 名称 。 如 果 给 出 了 NOS K I P 或 S K I P 变 量 , 当 创 建 了备 份 设 备 时 , 它 们 会 忽 略 任 何 已 定 义 的 设 置 。

ST A T S 此 变 量 可 查 看 备 份 程 序 的 进 展 情 况 , 并 将 进 度 以完 成 的 百 分 比 显 示 到 屏 幕 上 或 输 出 文 件 上 。

FIL E F I L E G R O U P 此 变 量 用 于 下 列 情 况 :数 据 库 太 大 , 从 性 能 上 讲 不推 荐 进 行 全 集 备 份 整 个 数 据 库 , 它 可 能 是 一 个 文件 或 多 个 文 件 , 也 可 能 是 一 个 文 件 组 或 多 个 文 件组 , 备 份 文 件 和 / 或 文 件 组 与 che c k p o i n t 选 项 中tr u n c 记 录 不 兼 容 。 如 果 表 格 及 其 索 引 驻 留 在 不 同的 文 件 或 文 件 组 上 , 所 有 这 些 文 件 必 须 一 起 备 份 。

LO G 此 变 量 表 示 备 份 的 是 事 务 处 理 记 录 , 而 不 是 数 据库 。 用 户 将 获 得 自 最 后 一 次 成 功 的 LO G 备 份 以 来对 数 据 库 的 所 有 变 动 。

Page 103: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T R U N C A T E _ O N L Y N O _ L O G 如 果 使 用 这 些 变 量 , 且 正 删 除 事 务 处 理 记 录 , 就应 备 份 整 个 数 据 库 , 此 变 量 会 删 去 记 录 中 不 活 动的 部 分 (不 做 记 录 的 备 份 拷 贝 ) , 并 截 取 记 录 。 在用 NO_ L O G 备 份 记 录 后 , 记 录 中 对 数 据 库 的 变 动 不能 应 用 于 恢 复 数 据 库 , 这 就 是 为 何 有 必 要 备 份 数据 库 的 原 因 。

NO_ T R U N C A T E 备 份 记 录 , 但 不 截 取 。示 例下 面 是 备 份 整 个 数 据 库 的 示 例 :

B A C K U P D A T A B A S E C u s t o m e r T O c u s t o m e r _ d b 1

本 例 中 , 将 客 户 数 据 库 备 份 到 转 储 设 备 cus t o m e r _ d b 1 中 。示 例下 面 的 例 子 是 备 份 整 个 数 据 库 和 事 务 处 理 记 录 :

B A C K U P D A T A B A S E C u s t o m e r T O c u s t o m e r _ d b 1G OB A C K U P L O G C u s t o m e r T O c u s t o m e r _ l o g 1G O

Page 104: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

B E G I N . . . E N D

B E G I N . . . E N D 语 句 将 Tra n s a c t - S Q L 语 句 组 合 在 一 起 , 这 样 , 当 使 用 流 程 控制 语 句 ( 如 IF. . . E L S E) 时 , 整 个 语 句 组 将 按 流 程 控 制 逻 辑 运 行 , 而 不 会 在 执行 了 IF 语 句 后 单 个 执 行 一 个 语 句 。

语 法

B E G I N{ s q l _ s t a t e m e n t| s t a t e m e n t _ b l o c k }E N D

变 量 {sq l _ s t a t e m e n t | st a t e m e n t _ b l o c k } 是 任 意 系 列 的 Tra n s a c t - S Q L 语句 。

示 例下 面 是 BEG I N . . . E N D 的 示 例 :

I F @ v a r 1 = 5B E G I NS E L E C T @ v a r 2 = 6P R I N T ′ I a m a l s o d o i n g t h i s p r i n t i f v a r 1 = 5′E N D

Page 105: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 如 果 @va r l = 5, 就 执 行 SE L E C T 与 PR I N T 语 句 。

B E G I N D I S T R I B U T E D T R A N S A C T I O N

B E G I N D I S T R I B U T E D T R A N S A C T I O N 语 句 表 明 , Mic r o s o f t D i s t r i b u t e dT r a n s a c t i o n C o o r d i n a t o r ( M S D T C )开 始 控 制 Tra n s a c t - S Q L 分 布 式 事 务 处 理 。

语 法

B E G I N D I S T R I B U T E D T R A N[ S A C T I O N ] [ t r a n s a c t i o n _ n a m e]

变 量 tra n s a c t i o n _ n a m e 由 用 户 命 名 , MS D T C 用 它 来 引 用 事 务 处 理 。示 例下 面 是 BEG I N D I S T R I B U T E D T R A N S A C T I O N 语 句 的 示 例 :

B E G I N D I S T R I B U T E D T R A N S A C T I O NU P D A T E m y l o c a l t a b l eS E T c o l 1 = ′ N / A ′E X E C U T E r e m o t e . d b 1 . d b o . r e s e t _ c o l 1 ′ N / A ′C O M M I T T R A N

本 例 中 , 利 用 双 向 委 托 , UPD A T E 语 句 更 新 本 地 数 据 库 , 远 程 存 储 过 程 更 新

Page 106: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

远 程 数 据 库 。

B E G I N T R A N S A C T I O N

B E G I N T R A N S A C T I O N 语 句 表 明 开 始 进 行 Tra n s a c t - S Q L 本 地 事 务 处 理 。语 法

B E G I N T R A N [ S A C T I O N][ t r a n s a c t i o n _ n a m e]

变 量 tra n s a c t i o n _ n a m e 是 由 用 户 命 名 的 事 务 处 理 。示 例下 面 是 BEG I N T R A N S A C T I O N 语 句 的 示 例 :

B E G I N T R A N S A C T I O NU P D A T E m y l o c a l t a b l eS E T c o l 1 = ′ N / A ′E X E C U T E r e s e t _ c o l 1 ′ N / A ′C O M M I T T R A N

本 例 中 , 利 用 双 向 委 托 , 由 UP D A T E 语 句 更 新 本 地 数 据 库 , 远 程 存 储 过 程 更新 远 程 数 据 库 。

Page 107: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

B E T W E E N

B E T W E E N 包 括 某 一 范 围 的 两 个 数 值 。语 法

[ N O T] e x p r e s s i o n [ N O T] B E T W E E N e x p r e s s i o n A N D e x p r e s s i o n

变 量

N O T N O T 是 布 尔 表 达 式 的 否 定 指 示 符 。exp r e s s i o n 表 达 式 可 以 是 常 数 、 列 名 、 函 数 、 子

查 询 程 序 、 算 术 运 算 符 、 按 位 运 算 符和 串 运 算 符 。

AN D A N D 语 句 串 接 两 个 条 件 。

示 例下 面 是 BET W E E N 语 句 的 示 例 :

S E L E C T *F R O M t a b l e XW H E R E c o l 1 B E T W E E N 1 A N D 5

Page 108: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 选 择 出 的 行 , 其 列 值 在 1~ 5 之 间 , 查 询 中 将 选 择 有 1 和 5 的 行 。

b i n a r y

当 列 中 的 值 有 相 同 的 长 度 时 , 就 可 以 用 固 定 长 度 的 二 进 制 数 据 类 型 存 储 二进 制 数 据 , 如 果 长 度 不 一 致 , 就 采 用 可 变 长 度 的 数 据 类 型 。

语 法

b i n a r y[ (n )]

变 量 (n )是 字 符 数 , 它 最 多 可 存 储 80 0 0 字 节 。 即 使 列 比 (n )短 , (n)仍 是 存储 所 占 用 的 空 间 总 量 , 如 果 列 不 超 过 15, 将 15 用 作 (n ), 可 以 避 免 列 比 要 存 储的 数 据 大 得 太 多 。 如 果 临 时 表 中 的 行 超 过 80 0 0, 查 询 处 理 器 就 不 可 能 处 理 这 种情 形 。

在 定 义 数 据 时 , 长 度 的 缺 省 值 (如 果 没 有 提 供 )为 1, 如 果 使 用 CONV E R T, 长度 为 30, 如 果 数 据 太 长 , 在 一 列 中 放 不 下 , 就 截 去 数 据 的 尾 部 。

b i t

位 数 据 类 型 存 储 1 或 0, 通 常 用 来 表 示 1=是 , 0=非 。 如 果 想 在 位 数 据 类 型中 插 入 非 0 或 1 的 内 容 , 就 插 入 1。

Page 109: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

Bi t (n )变 量 (n )为 一 整 数 , 表 示 位 列 的 长 度 。 存 储 长 度 为 1 个 字 节 , 一 个 字 节 包 含

8 位 。 有 位 数 类 型 的 列 不 能 加 索 引 。

B R E A K

B R E A K 语 句 用 在 Tra n s a c t - S Q L 流 程 控 制 语 言 中 以 退 出 WHILE 循 环 。语 法

B R E A K

示 例下 面 是 WHI L E 循 环 中 用 BR E A K 的 示 例 :

W H ILE . . . - -某 些 内 容 为 真B E G I NIF.. .--其 他 内 容 为 真B R E A KE L S EC O N T I N U E

Page 110: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

E N D

本 例 中 , 如 果 WH I L E 循 环 中 其 它 内 容 为 真 , 就 退 出 循 环 。

B U L K I N S E R T

B U L K I N S E R T 是 将 数 据 文 件 以 指 定 格 式 存 放 到 数 据 库 表 中 。语 法

B U L K I N S E R T [[ ′ d a t a b a s e _ n a m e′ .][ ′ o w n e r′ ] .] { ′ t a b l e _ n a m e′F R O M d a t a _ f i l e }[ W I T H([ B A T C H S I Z E [ = b a t c h _ s i z e]][[ ,] C H E C K _ C O N S T R A I N T S ][[ ,] C O D E P A G E [ = A C P | O E M | R A W | c o d e _ p a g e]][[ ,] D A T A F I L E T Y P E [ ={′ c h a r′ |′ n a t i v e′ |′ w i d e c h a r′ |′ w i d e n a t i v e′ }]][[ ,] F I E L D T E R M I N A T O R [ = ′ f i e l d _ t e r m i n a t o r′ ]][[ ,] F I R S T R O W [ = f i r s t _ r o w ]][[ ,] F O R M A T F I L E [ = ′ f o r m a t _ f i l e _ p a t h ′ ]][[ ,] K E E P I D E N T I T Y ]

Page 111: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[[ ,] K E E P N U L L S][[ ,] L A S T R O W [ = l a s t _ r o w]][[ ,] m a x e r r o r s [ = m a x _ e r r o r s ]][[ ,] O R D E R ( { c o l u m n [ A S C | D E S C ] } [ , . . .n] )][[ ,] R O W T E R M I N A T O R [ = ′ r o w _ t e r m i n a t o r′ ]][[ ,] TA B L O C K ] )]

变 量′ dat a b a s e _ n a m e′ da t a b a s e _ n a m e 是 放 置 表 格 的 数 据 库

名 称 。′ ow n e r′ ow n e r 是 表 格 拥 有 者 的 名 称 。′ tab l e _ n a m e′ ta b l e _ n a m e 是 要 到 成 批 插 入 数 据 的 表

格 。da t a _ f i l e d a t a _ f i l e 是 指 数 据 文 件 的 路 径 。BAT C H S I Z E [ =b a t c h _ s i z e] BAT C H S I Z E 是 成 批 处 理 的 行 数 。CHE C K _ C O N S T R A I N T S C H E C K _ C O N S T R A I N T S 指 成 批 插 入 时 对

表 格 上 的 约 束 进 行 检 查 。 缺 省 设 置 是不 检 查 约 束 。

CO D E P A G E [ = A C P | OEM | RA W |co d e _ p a g e]

C O D E P A G E 是 数 据 文 件 中 数 据 的 代 码页 , 这 些 数 据 是 字 符 、 可 变 字 符 或 文本 列 , 它 们 的 字 符 值 大 于 127 或 小 于32。 RA W 由 于 不 用 转 换 , 速 度 最 快 ,

Page 112: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

其 它 码 页 则 转 换 SQ L 成 Serv e r 代 码页 。

<v a l u e > < v a l u e >是 代 码 页 数 。DAT A F I L E T Y P E{ [ =′ ch a r′ |

′ na t i v e ′ | ′ wid e c h a r ′ | ′wid e n a t i v e′ }]

DAT A F I L E T Y P E 指 令 BU L K I N S E R T 用 给定 类 型 的 缺 省 值 进 行 成 批 插 入 。 char用 \ t( 制 表 符 ) 作 为 缺 省 的 字 段 分 隔符 , 用 \ n( 新 行 字 符 ) 作 为 缺 省 的 行终 止 符 。 Na t i v e 用 数 据 的 本 机 数 据 类型 作 为 缺 省 值 进 行 成 批 复 制 。 每 个 字段 都 没 有 提 示 。 Wid e c h a r 用 Uni c o d e字 符 作 为 缺 省 值 , 也 没 有 提 示 , 用nc h a r 的 缺 省 值 作 为 缺 省 存 储 类 型 ,用 \ t( 制 表 符 ) 作 为 缺 省 的 字 段 分 隔符 。 用 \ n( 新 行 字 符 ) 作 为 缺 省 的 行终 止 符 。 Wid e n a t i v e 除 字 符 、 可 变 字符 和 文 本 列 保 存 为 Un i c o d e 字 符 外 ,其 他 情 况 与 nat i v e 相 同 。Wid e n a t i v e比 Wi d e c h a r 快 , 并 其 用 途 是 用 数 据文 件 将 数 据 从 一 个 SQ L S e r v e r 传 输到 另 一 个 SQ L S e r v e r。

FI E L D T E R M I N A T O R [ = ′fi e l d _ t e r m i n a t o r′ ]

fi e l d _ t e r m i n a t o r 是 用 于 字 符 和 宽 字符 的 字 符 终 止 符 , 缺 省 值 为 \ t。

Page 113: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F I R S T R O W[ =f i r s t _ r o w] fir s t _ r o w 是 要 复 制 的 第 一 行 的 数目 , 缺 省 值 为 1。

FOR M A T F I L E [ = ′ fo r m a t _ f i l e _ p a t h′ ]

fo r m a t _ f i l e _ p a t h 格 是 响 应 前 一 次 使用 的 格 式 文 件 的 完 整 路 径 。

KEE P I D E N T I T Y K E E P I D E N T I T Y 表 示 标 识 列 在 文 件 中 ,它 从 数 据 文 件 中 提 取 标 识 列 的 值 。

KE E P N U L L S K E E P N U L L S 表 示 是 指 保 持 空 值 , 而 不使 用 缺 省 值 。

LA S T R O W[ = l a s t _ r o w] l a s t _ r o w 是 要 复 制 的 最 后 一 行 的 数目 , 缺 省 值 为 0。 它 表 示 最 后 一 行 实际 上 在 文 件 中 。

MAX E R R O R S [ =m a x _ e r r o r s] ma x _ e r r o r s 是 在 停 止 成 批 复 制 操 作前 出 现 最 多 的 错 误 数 目 , 缺 省 值 为10。

OR D E R ( { c o l u m n [ ASC | DE S C ] }[ ,. . . n]

O R D E R 说 明 数 据 文 件 中 的 数 据 如 何 分类 。 缺 省 状 态 下 , 成 批 复 制 操 作 假 定数 据 文 件 没 有 排 序 。 如 果 其 顺 序 与 表的 成 簇 索 引 相 同 , 则 运 行 较 快 。

n n 表 示 指 前 面 的 项 可 重 复 。ROW T E R M I N A T O R [ = ′ro w _ t e r m i n a t o r′ ]

ro w _ t e r m i n a t o r 是 用 于 字 符 和 宽 字 符的 行 结 束 符 , 缺 省 值 为 \ n。

TA B L O C K T A B L O C K 指 进 行 成 批 复 制 的 过 程 中 需

Page 114: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

要 表 格 级 别 的 锁 定 。 如 果 表 中 没 有 索引 , 且 使 用 了 TABL O C K , 则 多 个 客 户可 以 插 入 表 格 中 。 缺 省 值 是 表 中 需 要行 级 锁 定 。

示 例下 面 是 BUL K I N S E R T T r a n s a c t - S Q L 语 句 是 示 例 :

B U L K I N S E R T M y d b . . M y T a b l eF O R M ′ a :\ m y f i l e . t x t′W I T H ( F I E L D T E R M I N A T O R = ′ ,′ , R O W T E R M I N A T O R =′ \ n′ )

本 例 中 , my f i l e 中 的 数 据 以 及 用 逗 号 表 示 的 字 段 终 止 符 和 新 行 的 行 终 止 符 ,插 入 到 数 据 库 My d b 的 表 My t a b l e 中 。

C A S E

C A S E 语 句 是 Tra n s a c t - S Q L 表 达 式 中 使 用 条 件 值 的 工 具 。语 法简 单 CA S E 语 句 的 语 法C A S E e x p r e s s i o n{ W H E N e x p r e s s i o n T H E N r e s u l t } [ , . . .n]

Page 115: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ E L S E r e s u l t]E N D

语 法搜 索 的 CASE 语 句 的 语 法 :

C A S EW H E N B o o l r e a n _ e x p r e s s i o n T H E N r e s u l t _ e x p r e s s i o n[ , . . .n][ E L S E e l s e _ r e s u l t _ e x p r e s s i o n]E N D

变 量

e x p r e s s i o n e x p r e s s i o n 可 以 是 常 数 、 列 名 、 函 数 、 子 查 询 程序 , 也 可 以 是 算 术 运 算 符 、 按 位 运 算 符 或 串 运 算符 。

re s u l t r e s u l t 是 表 达 式 与 WHEN 子 句 相 符 时 返 回 的 值 。N 该 变 量 表 示 可 以 多 次 重 复 WH E N 子 句 。Bo o l e a n _ e x p r e s s i o n 布 尔 表 达 式 表 明 是 否 执 行 TH E N 子 句 。ELS E r e s u l t 如 果 WH E N 子 句 失 败 , 就 返 回 ELS E r e s u l t。 如 果

没 有 使 用 EL S E,而 WH E N 子 句 失 败 , 将 返 回 NULL。示 例

Page 116: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 CASE 语 句 的 示 例 :S E L E C T n a m e = C A S E S o f t w a r eW H E N ′ W o r d P r o c e s s o r′ T H E N ′ M i c r o s o f t W o r d′W H E N ′ S p r e a d s h e e t′ T H E N ′ M i c r o s o f t E x c e l′E N DF R O M t a b l e 1W H E R E c o m p a n y = ′ M i c r o s o f t′

本 例 中 , 如 果 在 table 1 的 So f t w a r e 列 中 找 到 “ Wo r d P r o c e s s o r ” 或“ Spr e a d s h e e t” 值 , 就 将 返 回 “ Mic r o s o f t W o r d” 或 者 “ Mic r o s o f t E x c e l”的 值 。

C A S T

C A S T 语 句 和 COW E R T 语 句 相 同 , 它 们 都 用 来 在 Tra n s a c t - S Q L 中 进 行 数 据 类型 的 转 换 。

语 法

C A S T ( e x p r e s s i o n A S d a t a _ t y p e )

变 量

Page 117: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

e x p r e s s i o n e x p r e s s i o n 可 以 是 常 数 、 列 名 、 函 数 、 子 查询 程 序 , 也 可 以 是 算 术 运 算 符 , 按 位 运 算 符 或串 运 算 符 。

da t a _ t y p e 数 据 类 型 是 列 可 以 转 换 的 任 意 系 统 数 据 类 型 。

示 例下 面 是 CA S T 语 句 的 示 例 :

C A S T ( M y D a t e A S v a r c h a r )

本 例 中 , My D a t e 值 转 换 成 可 变 字 符 数 据 类 型 , 而 不 再 是 日 期 时 间 数 据 类 型 。

C E I L I N G

C E I L I N G 函 数 用 于 数 学 环 境 , 它 的 返 回 值 是 大 于 或 等 于 给 定 的 数 值 表 达 式 的最 短 整 数 。

语 法

C E I L I N G ( n u m e r i c _ e x p r e s s i o n )

变 量 num e r i c _ e x p r e s s i o n 可 以 是 小 数 、 浮 点 数 、 整 型 数 、 货 币 、 实 数 、 短整 型 数 、 小 货 币 数 或 微 短 整 型 数 。

Page 118: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 CEI L I N G 函 数 的 一 些 示 例 :

S E L E C T C E I L I N G ( 1 . 4 5 )

本 例 中 , 返 回 整 数 2。

S E L E C T C E I L I N G ( - 1 . 4 5 )

本 例 中 , 返 回 整 数 1。

字 符 数 据 类 型

列 中 的 值 有 相 同 长 度 时 , 可 用 固 定 长 度 的 字 符 数 据 类 型 存 储 字 母 数 据 。 长度 不 一 致 时 , 用 可 变 长 度 的 可 变 字 符 数 据 类 型 。

语 法

c h a r[ ( n )]

变 量 (n )是 代 表 列 长 度 的 整 数 。

Page 119: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C H A R 字 符 串 函 数

C H A R 是 字 符 串 函 数 , 用 于 将 AS C I I 码 整 数 转 换 为 字 符 。语 法

C H A R ( i n t e g e r _ e x p r e s s i o n )

变 量 ( int e g e r _ e x p r e s s i o n) 是 0~ 25 5 间 的 正 整 数 。示 例下 面 是 CHAR 字 符 串 函 数 的 示 例 :

S E L E C T ′ B A C K U P D A T A B A S E ′ + n a m e + ′ to′ + n a m e +_ d u m p w i t h i n i t , s t a t s + C H A R ( 1 3 ) + ′ G O ′F R O M m a s t e r . . s y s d a t a b a s e sW H E R E n a m e N O T L I K E ′ t e m p d b′

本 例 中 , 以 下 述 语 法 显 示 输 出 结 果 , 并 以 主 从 SQL S E L E C T 语 句 的 方 式 建 立Tra n s a c t - S Q L 代 码 。 这 表 示 主 SQL 语 句 建 立 以 后 运 行 的 从 SQL 语 句 。 在 运 行 从属 的 Tra n s a c t - S Q L 前 需 要 在 编 辑 过 程 中 删 除 文 本 “( 4 r o w ( s ) a f f e c t e d)”。 或者 在 SEL E C T 语 句 前 设 置 NOC U N T, 就 将 不 打 印 “( 4 r o w ( s ) a f f e c t e d)”。 可 以包 括 虚 线 行 , 因 为 它 被 解 释 为 注 释 。

Page 120: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

前 面 的 SEL E C T 语 句 将 建 立 备 份 SQL S e r v e r 上 所 有 数 据 库 的 语 法 。 CHA R ( 1 3 )提 供 换 行 字 符 , 当 需 要 使 用 GO 语 句 时 , GO 语 句 需 要 此 换 行 字 符 为 新 行 的 第 一个 字 符 。 AS C I I 码 13 就 是 换 行 字 符 。

B A C K U P D A T A B A S E m a s t e r t o m a s t e r _ d u m p w i t h i n i t , s t a t s G OB A C K U P D A T A B A S E m o d e l t o m o d e l _ d u m p w i t h i n i t , s t a t s G OB A C K U P D A T A B A S E m s d b t o m s d b _ d u m p w i t h i n i t , s t a t s G OB A C K U P D A T A B A S E p u b s t o p u b s _ d u m p w i t h i n i t , s t a t s G O

C H A R I N D E X 字 符 串 函 数

C H A R I N D E X 字 符 串 函 数 在 搜 索 字 符 串 中 的 模 式 时 , 返 回 模 式 的 开 始 位 置 。语 法

C H A R I N D E X (′ p a t t e r n′ , e x p r e s s i o n [ , s t a r t _ l o c a t i o n] )

变 量

p a t t e r n p a t t e r n 是 搜 索 的 字 母 值 。exp r e s s i o n e x p r e s s i o n 是 任 意 有 效 的 SQL S e r v e r 字

符 串 表 达 式 。sta r t _ l o c a t i o n s t a r t _ l o c a t i o n 是 列 中 开 始 搜 索 模 式 的

位 置 ,如 果 没 有 提 供 此 可 选 项 ,SQL S e r v e r

Page 121: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

将 从 第 一 个 位 置 开 始 搜 索 。

示 例下 面 是 CHA R I N D E X 字 符 串 函 数 的 示 例 :

S E L E C T C H A R I N D E X (′ f i n d m e i n r o w 4 ′ , C o l u m n 2 , 1 0 )F R O M M y T a b l eW H E R E C o l u m n 1 = ′ 4′G O

本 例 中 , 返 回 的 整 数 是 Col u m n 2 中 模 式 “ fin d m e i n r o w 4” 开 始 的 位 置 ,或 是 第 10 个 字 符 后 面 。

C H E C K P O I N T

当 前 数 据 库 中 的 CHE C K P O I N T 向 S Q L S e r v e r 发 布 命 令 , 将 自 最 后 一 个 检 查点 以 来 更 新 的 全 部 页 面 写 入 磁 盘 。 发 布 CHE C K P O I N T 语 句 检 查 数 据 库 , 其 它 检 查点 由 SQL S e r v e r 根 据 sp_ c o n f i g u r e 选 项 的 设 置 自 动 执 行 , 此 选 项 称 为 “ 恢 复间 隔 ” 集 , 它 决 定 可 接 受 的 最 长 恢 复 时 间 ( 以 分 钟 为 单 位 )。

语 法

C H E C K P O I N T

Page 122: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C L O S E

C L O S E 语 句 关 闭 打 开 的 游 标 , 保 留 数 据 结 构 , 以 便 能 再 打 开 关 闭 的 游 标 。语 法

C L O S E { {[ G L O B A L] c u r s o r _ n a m e }| c u r s o r _ v a r i a b l e _ n a m e }

G L O B A L G L O B A L 指 全 局 游 标 。cur s o r _ n a m e c u r s o r _ n a m e 是 要 关 闭 的 开 启 游 标

名 ,如 果 GL O B A L 是 变 量 ,cur s o r _ n a m e就 指 的 是 GLO B A L 游 标 , 如 果 没 有 使用 关 键 词 GLO B A L , 指 的 就 是 本 地 游标 。

cur s o r _ v a r i a b l e _ n a m e c u r s o r _ v a r i a b l e _ n a m e 指 包 含 要 关 掉的 开 启 游 标 的 变 量 名 。

Page 123: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C O A L E S C E

C O A L E S C E 的 返 回 值 是 按 顺 序 检 查 每 个 变 量 时 找 到 的 第 一 个 NOT N U L L 值 。SQ LS e r v e r 将 检 查 第 一 个 变 量 、 列 或 表 达 式 。 如 果 其 为 NU L L, 就 查 下 一 个 变 量 , 如果 这 个 又 是 NU L L, 就 再 查 下 一 个 变 量 , 直 到 检 查 的 变 量 为 NOT N U L L, 它 就 作 为返 回 值 。

语 法

C O A L E S C E ( e x p r e s s i o n[ ,⋯ n] )

变 量e x p r e s s i o n 表 达 式 可 以 是 常 数 、 列 名 、 函 数 、 子

查 询 程 序 , 也 可 以 是 算 术 运 算 符 , 按位 运 算 符 和 串 运 算 符 。

n n 表 示 前 面 的 项 可 以 重 复 。示 例下 面 是 COA L E S C E 函 数 的 示 例 :S E L E C T C O A L E S C E ( C o l u m n 1 , c o l u m n 2 , c o l u m n 3 )F R O M M y T a b l eW H E R E C o l u m n 4 < 9G O

Page 124: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 分 析 Col u m n 1 中 是 否 有 NO T N U L L, 如 果 Col u m n 1 中 有 NOT N U L L,就 返 回 Col u m n 1 中 的 值 ,但 如 果 Colu m n 1 中 有 NULL, 就 分 析 Co l u m n 2 是 否 有 NO TN U L L, 如 果 第 二 列 有 值 , 返 回 此 值 , 一 直 往 下 进 行 , 直 到 COAL E S C E 函 数 找 到 某变 量 中 有 NOT N U L L 值 为 止 。

C O L _ L E N G T H

C O L _ L E N G T H 返 回 列 的 长 度 , 以 字 节 为 单 位 。语 法

C O L _ L E N G T H (′ t a b l e′ , ′ c o l u m n′ )

变 量t a b l e t a b l e 是 表 格 名 称 , 可 以 用

own e r . t a b l e n a m e 的 形 式 。Co l u m n c o l u m n 是 列 名 。

示 例下 面 是 COL _ L E N G T H 函 数 的 示 例 :

S E L E C T C O L _ L E N G T H (′ M yTable′ , ′ C o l u m n 1′ )

Page 125: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 返 回 表 MyT a b l e 中 Co l u m n 1 的 长 度 (整 数 )。

C O L _ N A M E

C O L _ N A M E 在 给 出 函 数 、 表 格 标 识 数 和 列 标 识 数 后 , 返 回 数 据 库 的 列 名 。语 法

C O L _ N A M E ( t a b l e _ i d , c o l u m n _ i d )

变 量

t a b l e _ i d 表 格 的 系 统 ID。co l u m n _ i d 列 的 系 统 ID。

C O L U M N P R O P E R T Y

C O L U M N P R O P E R T Y 返 回 列 的 信 息 或 程 序 变 量 的 信 息 。语 法

C O L U M N P R O P E R T Y ( i d , c o l u m n ,′ p r o p e r t y ′ )

Page 126: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量i d i d 是 表 格 或 程 序 变 量 的 ID。co l u m n c o l u m n 是 列 和 程 序 变 量 的 名 称 。pr o p e r t y p r o p e r t y 指 表 格 或 程 序 变 量 返 回 的 信

息 类 型 。 属 性 的 值 可 以 是 ′All o w s N u l l ′ , ′ IsI d e n t i t y′ , ′Is I d N o t - F o r R e p 1′ ,′ Is O u t P a r a m′ , ′ Is R o w G u i d C o l ′ , ′ Pr e c i s i o n′ , ′ Sca l e ′ , 和 ′ Use s A n s i T r i m′ 。

示 例下 面 是 COL U M N P R O P E R T Y 函 数 的 示 例 :

S E L E C T C O L U M N P R O P E R T Y (O B J E C T _ I D ( ′ M yTable′ ) ,′ C o l u m n 1′ ,′ P R E C I S I O N′ )

本 例 中 返 回 值 是 MyT a b l e 中 Co l u m n 1 的 精 度 。

Page 127: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C O M M I T T R A N S[ A C T I O N ]

C O M M I T T R A N S A C T I O N 或 CO M M I T T R A N S 是 事 务 处 理 的 结 束 , 此 时 , 从 事 务 处理 开 始 对 数 据 所 做 的 变 动 将 成 为 数 据 库 的 固 定 内 容 。

语 法

C O M M I T [ T R A N [ S A C T I O N ] [ t r a n s a c t i o n _ n a m e] ]变 量 tra n s a c t i o n _ n a m e 只 由 程 序 员 用 来 通 知 哪 个 COM M I T 归 属 于 哪 个

BE G I N。示 例下 面 是 COM M I T T R A N S[ A C T I O N] 语 句 的 示 例 :

B E G I N T R A N S A C T I O NU P D A T E M y t a b l eS E T C o l u m n 1 = 3W H E R E C o l u m n 2 = 8G OC O M M I T T R A N S A C T I O NG O本 例 中 , 事 务 处 理 以 BEG I N T R A N S A C T I O N 开 始 , 以 COM M I T T R A N S A C T I O N 结

束 。

Page 128: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C O M M IT [ W O R K ]

C O M M I T W O R K 是 事 务 处 理 的 结 束 , 此 时 , 从 事 务 处 理 开 始 对 数 据 所 做 的 变 动将 成 为 数 据 库 的 固 定 内 容 。 它 和 COM M I T T R A N S A C T I O N 完 全 一 样 , 是 为 与 AN S IS Q L - 9 2 兼 容 而 添 加 的 。

语 法

C O M M I T [ W O R K ]]变 量 WO R K 是 可 选 项 。 单 词 COM M I T 和 CO M M I T W O R K 起 同 样 的 作 用 。示 例下 面 是 COM M I T[ W O R K] 语 句 的 示 例 :B E G I N T R A N S A C T I O NU P D A T E M y t a b l eS E T C o l u m n 1 = 3W H E R E C o l u m n 2 = 8G OC O M M I TG O

本 例 中 , 以 CO M M I T 开 始 和 结 束 事 务 处 理 。

Page 129: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C O N T A I N S

C O N T A I N S 搜 索 以 字 符 为 基 础 的 数 据 类 型 中 列 的 精 度 或 其 他 方 面 的 匹 配 , 例如 单 词 或 词 组 , 单 词 或 词 组 的 前 缀 , 一 个 单 词 旁 边 的 另 一 个 单 词 , 由 一 个 单 词生 成 的 另 一 个 单 词 (例 :make 和 m a d e ), 以 及 比 一 个 单 词 的 权 值 更 高 的 另 一 个 单词 。 此 函 数 取 决 于 数 据 库 / 表 格 / 列 能 否 进 行 全 文 搜 索 。 请 参 阅 第 22 章 了 解 全文 存 储 过 程 。

语 法

C O N T A I N S ( { c o l u m n | * } , ) ′ < c o n t a i n s _ s e a r c h _ c o n d i t i o n >′)< c o n t a i n s _ s e a r c h _ c o n d i t i o n > : : ={< s i m p l e _ t e r m >| < p r e f i x _ t e r m >| < p r o x i m i t y _ t e r m >| < g e n e r a t i o n _ t e r m >| < i s a b o u t _ t e r m >| ( < c o n t a i n s _ s e a r c h _ c o n d i t i o n > )}

Page 130: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ {{ A N D | A N D N O T | O R } < c o n t a i n s _ s e a r c h _ c o n d i t i o n >}] [ . . . n ]

< i s a b o u t _ t e r m > : : =I S A B O U T({< g e n e r a t i o n _ t e r m >| < p r e f i x _ t e r m >| < p r o x i m i t y _ t e r m >| < s i m p l e _ t e r m >}[ W E I G H T ( w e i g h t _ v a l u e ) >)

< g e n e r a t i o n _ t e r m > : : =F O R M S O F ( I N F L E C T I O N A L , < s i m p l e _ t e r m > )

< p r e f i x _ t e r m > : : =w o r d * | " p h r a s e * "

Page 131: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< p r o x i m i t y _ t e r m > : : ={ < s i m p l e _ t e r m > | < p r e f i x _ t e r m > }[ N E A R ( ) | ~ ]

< s i m p l e _ t e r m > : : =w o r d | " p h r a s e "

变 量

c o l u m n c o l u m n 指 字 符 类 型 列 的 名 称 。 列 必 须 注 册才 能 进 行 全 文 搜 索 。

* *表 示 表 中 所 有 的 列 都 适 于 搜 索 (注 册 了 全文 搜 索 )。 如 果 FROM 子 句 中 有 多 个 表 格 ,就 要 用 表 名 限 定 。

<co n t a i n s _ s e a r c h _ c o n d i t i o n > < c o n t a i n s _ s e a r c h _ c o n d i t i o n > 指 要 在 列中 搜 索 的 文 本 。

wo r d w o r d 单 词 指 中 间 无 空 格 、 无 标 点 的 一 串 字符 。

ph r a s e p h r a s e 指 带 空 格 的 一 个 或 多 个 单 词 。<is a b o u t _ t e r m > < i s a b o u t _ t e r m > 决 定 返 回 的 行 与 有 各 自 加

权 值 的 单 词 或 词 组 列 表 相 匹 配 。IS A B O U T I S A B O U T 是 <i s a b o u t _ t e r m >的 关 键 词 。WE I G H T ( w e i g h t _ v a l u e ) w e i g h t _ v a l u e 定 义 加 权 值 ,其 值 位 于 0.0~

Page 132: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

1 . 0 之 间 。 <is a b o u t _ t e r m >的 每 一 部 分 都 有一 个 加 权 值 。

AN D| AN D N O T| O R AN D| AN D N O T| O R 是 逻 辑 运 算 符 。<ge n e r a t i o n _ t e r m > < g e n e r a t i o n _ t e r m > 是 当 <s i m p l e _ t e r m s > 与

原 来 搜 索 的 单 词 不 同 时 的 单 词 匹 配 。INF L E C T I O N A L I N F L E C T I O N A L 表 示 名 词 的 单 数 或 复 数 形

式 , 动 词 的 各 种 时 态 互 相 匹 配 。<pr e f i x _ t e r m > < p r e f i x _ t e r m >指 定 匹 配 的 单 词 或 词 组 以 指

定 的 文 本 开 头 (例 如 ,“ MS *” 搜 索 以 “ MS”开 始 的 任 意 串 )。

<p r o x i m i t y _ t e r m > < p r o x i m i t y _ t e r m >定 义 匹 配 的 单 词 或 词 组互 相 近 似 。

NE A R ( )| ~ NEA R ( )| ~ 表 示 NE A R ( )或 ~ 一 侧 的 串 、 单词 或 词 组 与 其 另 一 侧 的 串 、 单 词 或 词 组 相近 。

<si m p l e _ t e r m > < s i m p l e _ t e r m > 确 定 确 切 匹 配 单 词 或 词 组(词 组 括 在 双 引 号 内 )。

N n 指 前 面 的 项 可 重 复 。示 例下 面 是 关 键 词 CON T A I N S 的 示 例 :

Page 133: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T M y F u l l T e x t E n a b l e d C o l u m nF R O M M y T a b l eW H E R E C O N T A I N S ( M y F u l l T e x t E n a b l e d C o l u m n ,′ c o m p u t e r * O R h a r d w a r e *′ )

本 例 中 , MyF u l l T e x t E n a b l e d C o l u m n 中 , 包 含 所 提 供 的 字 符 串 的 值 显 示 为 结果 集 。

示 例下 面 是 带 有 近 似 语 法 的 CONT A I N S 的 示 例 :S E L E C T M y F u l l T e x t E n a b l e d C o l u m nF R O M M y T a b l eW H E R E C O N T A I N S ( M y F u l l T e x t E n a b l e d C o l u m n ,′ D i a n a N E A R P r i n c e s s′ )

本 例 中 , MyF u l l T e x t E n a b l e d C o l u m n 的 值 中 , 显 示 所 提 供 的 单 词 中 相 互 近 似的 单 词 。

示 例下 面 是 使 用 CO N T A I N S 后 缀 语 法 的 示 例 :

S E L E C T M y F u l l T e x t E n a b l e d C o l u m nF R O M M y T a b l eW H E R E C O N T A I N S ( M y F u l l T e x t E n a b l e d C o l u m n , ′ F O R M S O F( I N F L E C T I O N A L, a g r e e )′ )

Page 134: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 显 示 MyF u l l T e x t E n a b l e d C o l u m n 中 与 所 提 供 的 单 词 形 式 相 符 的 值(ag r e e a b l e, ag r e e d, ag r e e i n g, ag r e e s, 等 等 )。

示 例下 面 是 使 用 CO N T A I N S 加 权 语 法 的 示 例 :

S E L E C T M y F u l l T e x t E n a b l e d C o l u m nF R O M M y T a b l eW H E R E C O N TA I N S ( M y F u l l T e x t E n a b l e d C o l u m n , ′ I S A B O U T ( d o l p h i nw e i g h t ( . 8 ) , w h a l e w e i g h t ( . 4 ) , f i s h w e i g h t ( . 2 )) ′ )

本 例 中 , 搜 索 MyF u l l T e x t E n a b l e d C o l u m n 中 包 含 单 词 海 豚 、 鲸 和 鱼 并 带 有相 应 权 重 的 行 。

C O N T A I N S T A B L E

C O N T A I N S T A B L E 返 回 的 表 格 中 , 列 与 单 词 或 词 组 精 确 或 不 太 精 确 的 匹 配 , 单词 与 另 一 些 单 词 近 似 或 者 权 重 匹 配 。 它 像 表 格 名 称 一 样 可 用 于 SE L E C T 语 句 的FR O M 子 句 。 它 还 返 回 每 行 的 级 别 值 。 详 细 内 容 可 参 阅 CON T A I N S。

语 法C O N T A I N S T A B L E ( t a b l e , { c o l u m n | * } , ′ < c o n t a i n s _ s e a r c h _ c o n d i t i o n >′ )< c o n t a i n s _ s e a r c h _ c o n d i t i o n > : : ={

Page 135: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

| < g e n e r a t i o n _ t e r m >| < p r e f i x _ t e r m >| < p r o x i m i t y _ t e r m >< s i m p l e _ t e r m >| < w e i g h t e d _ t e r m >| ( < c o n t a i n s _ s e a r c h _ c o n d i t i o n > )}[{{ A N D | A N D N O T | O R } < c o n t a i n s _ s e a r c h _ c o n d i t i o n >}] [ . . .n]< w e i g h t e d _ t e r m > : : =I S A B O U T( { {< g e n e r a t i o n _ t e r m >| < p r e f i x _ t e r m >| < p r o x i m i t y _ t e r m >| < s i m p l e _ t e r m >}[ W E I G H T ( w e i g h t _ v a l u e )]}[ , . . .n]

Page 136: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

)< g e n e r a t i o n _ t e r m > : : =F O R M S O F ( I N F L E C T I O N A L , < s i m p l e _ t e r m >[ , . . .n] )< p r e f i x _ t e r m > : : ={ " w o r d * " | " p h r a s e * " }< p r o x i m i t y _ t e r m > : : ={ < s i m p l e _ t e r m > | < p r e f i x _ t e r m > }{ { N E A R | ~ } { < s i m p l e _ t e r m > | < p r e f i x _ t e r m > } }[ . . .n]

< s i m p l e _ t e r m > : : =w o r d | " p h r a s e "变 量

t a b l e t a b l e 是 启 用 全 文 搜 索 的 表 格 的 可 选限 定 名 。

Co l u m n c o l u m n 指 要 全 文 搜 索 的 所 启 用 的 列名 。

* * 指 表 格 中 所 有 的 列 都 可 以 全 文 搜索 。

<co n t a i n s _ s e a r c h _ c o n d i t i o n > c o n t a i n s _ s e a r c h _ c o n d i t i o n 指 全 文搜 索 所 启 用 列 中 的 文 本 (不 是 一 个 变量 )。

Page 137: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C O N T I N U E

C O N T I N U E 语 句 有 时 跟 IF 语 句 一 起 使 用 , 它 可 用 CON T I N U E 后 面 没 有 执 行 的内 容 重 新 启 动 WH I L E 循 环 。 请 参 看 WH I L E。

语 法

C O N T I N U E

C O N V E R T

C O N V E R T 用 于 表 达 式 由 一 种 数 据 类 型 转 换 成 另 一 种 数 据 类 型 的 明 显 式 转 换 ,可 使 用 表 达 式 的 地 方 就 可 使 用 CON V E R T。

语 法

C O N V E R T ( d a t a _ t y p e[ ( l e n g t h )], e x p r e s s i o n[ , s ty le] )

变 量d a t a _ t y p e d a t a _ t y p e 是 表 达 式 要 使 用 的 数 据 类

型 , 但 不 是 用 户 定 义 的 数 据 类 型 。le n g t h l e n g t h 是 表 达 式 的 可 选 长 度 。

Page 138: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

e x p r e s s i o n 任 意 有 效 的 表 达 式 。st y l e s t y l e 是 将 日 期 时 间 或 小 日 期 时 间 数

据 转 换 成 字 符 数 据 时 使 用 的 数 据 格 式结 构 , 它 可 以 是 字 符 、 可 变 字 符 、nch a r、 nv a r c h a r 数 据 类 型 。 如 果 使用 字 符 串 格 式 将 浮 点 数 、 实 数 、 货 币或 小 货 币 型 数 据 转 换 成 字 符 数 据 时 ,数 据 类 型 可 以 是 字 符 、 可 变 字 符 、nch a r 或 nv a r c h a r 数 据 类 型 。日 期 时 间 或 小 日 期 时 间 转 换 成 字 符 的结 构 (为 年 份 添 加 10 0, 用 yy y y 格 式表 示 年 , 而 不 用 YY 格 式 表 示 年 ):-0 或 10 0 m o n d d y y y y h h : m i A M 或 P M1 或 10 1 U S A m m/ d d/ yy2 或 10 2 A N S I y y . m m . d d3 或 1 0 3 英 / 法 d d/ mm/ yy4 或 10 4 德 d d . m m . y y5 或 1 0 5 意 d d - m m - y y6 或 10 6 - d d m o n y y7 或 10 7 - m o n d d , y y8 或 10 8 - h h : m m : s s- 9 或 1 0 9 缺 省 值 + 毫 秒 m o n d d y y y y

Page 139: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

h h : m i : s s : m m m A M 或 P M1 0 或 11 0 U S A m m - d d - y y1 1 或 1 1 1 日 本 y y/ mm/ dd1 2 或 11 2 I S O y y m m d d-13 或 113 欧 洲 缺 省 值 + 毫 秒 d d m o ny y y y h h : m m : s s : m m m ( 2 4 小 时 )1 4 或 11 4 - h h : m i : s s : m m m ( 2 4 小 时 )-20 或 12 0 O D B C 规 范 y y y y - m m - d dh h : m i : s s ( 2 4 小 时 )-21 或 121 O D B C 规 范 (用 毫 秒 )yy y y - m m - d d h h : m i : s s . m m m ( 2 4 小 时 )浮 点 数 或 实 数 型 数 据 转 换 成 字 符 的 结构 如 下 :0 (缺 省 值 )= 6 位 或 小 于 1=8 位2=1 6 位mo n e y 或 sm a l l m o n e y 转 换 成 字 符 的 结构 如 下 :0 =无 逗 号 , 2 位 小 数 (例 :1 2 3 4 . 1 1 ),这 是 缺 省 值 。1=逗 号 和 2 位 小 数 (例 :1 , 2 3 4 . 1 1 )2 = 无 逗 号 , 小 数 点 右 边 4 位 ( 例 :123 4 . 1 1 1 1 )

Page 140: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 CON V E R T 函 数 的 示 例 :

S E L E C T′ M y B i r t h d a y i s T o d a y′ + C O N V E R T ( v a r c h a r ( 1 2 ) , g e t d a t e ( ) )

本 例 中 , 日 期 转 换 成 字 符 串 后 , 字 符 串 就 能 与 日 期 串 接 在 一 起 。 用 加 号 还可 以 串 接 字 符 数 据 类 型 。

C O S

C O S 为 数 学 函 数 , 它 返 回 表 达 式 中 角 度 的 余 弦 。语 法

C O S ( f l o a t _ e x p r e s s i o n )

变 量 flo a t _ e x p r e s s i o n 是 浮 点 型 数 据 。

C O T

C O T 为 数 学 函 数 , 它 返 回 表 达 式 中 角 度 的 余 切 。

Page 141: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

C O T ( f l o a t - e x p r e s s i o n )

变 量 flo a t - e x p r e s s i o n 是 浮 点 型 数 据 。

C O U N T

C O U N T 是 一 个 集 合 函 数 , 它 返 回 的 整 数 代 表 表 达 式 中 (通 常 是 一 列 )值 的 个数 。 DIS T I N C T 和 C O U N T 一 起 使 用 时 , 返 回 值 为 单 一 值 的 个 数 。

语 法

C O U N T ( { [ A L L | D I S T I N C T] e x p r e s s i o n ] | * } )

变 量

A L L A L L 是 缺 省 值 , 计 数 所 有 的 值 , 但 忽 略 NULL。DI S T I N C T D I S T I N C T 和 C O U N T 一 起 使 用 时 , 返 回 单 一 值 的 个 数 。exp r e s s i o n 表 达 式 可 以 是 常 量 、 列 名 、 函 数 、 子 查 询 程 序 、 算 术 运

算 符 、 按 位 运 算 符 和 串 运 算 符 。* *表 示 所 有 行 。

Page 142: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 COU N T 集 合 函 数 的 示 例 :

S E L E C T C O U N T ( C o l u m n 1 )F R O M M y t a b l e

本 例 中 , CO U N T 函 数 将 计 数 My t a b l e 的 Co l u m n 1 中 没 有 空 值 的 行 数 , 如 果使 用 *而 不 是 列 名 , 将 返 回 表 中 所 有 行 的 数 目 。

C R E A T E D A T A B A S E

C R E A E D A T A B A S E 是 建 立 新 数 据 库 及 其 相 关 文 件 的 语 句 。语 法

C R E A T E D A T A B A S E d a t a b a s e _ n a m e[ O N [ P R I M A R Y ][ < f i l e s p e c > [ , . . .n]][ , < f i l e g r o u p > [ , . . .n]]][ L O G O N { < f i l e s p e c > } ][ F O R L O A D | F O R A T T A C H ]<f i l e spec> : :=

Page 143: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

([ N A M E = l o g i c a l _ f i l e _ n a m e , ]F I L E N A M E = ′ o s _ f i l e _ n a m e′[ , S I Z E = s i z e][ , M A X S I Z E = { m a x _ s i z e | U N L I M I T E D } ][ , F I L E G R O W T H = g r o w t h _ i n c r e r n e n t] )[ ,...n]< f i l e g r o u p > : : =F I L E G R O U P f i l e g r o u p _ n a m e < f i l e s p e c > [ , . . .n]

变 量d a t a b a s e _ n a m e 用 标 识 符 规 则 建 立 的 新 数 据 库 名 称 。[ ON [ PR I M A R Y ][ <f i l e s p e c > [ , ⋯n]][ ,<f i l e g r o u p >[ ,⋯ n]]

如 果 使 用 ON, 就 要 提 供 存 储 数 据 的 磁盘 文 件 名 称 。 ON 后 面 跟 一 系 列 文 件 ,这 些 文 件 是 主 文 件 组 的 数 据 文 件 , 文件 中 也 可 以 有 用 户 建 立 的 文 件 组 列表 。 如 果 没 有 使 用 关 键 词 PR I M A R Y,列 出 第 一 个 文 件 就 存 储 为 主 文 件 。

PR I M A R Y P R I M A R Y 表 示 fil e s p e c 列 表 包 含 主 文件 组 中 的 文 件 , 而 主 文 件 组 包 含 文 件组 中 没 有 定 义 的 系 统 表 和 对 象 。 数 据库 只 能 有 一 个 PRI M A R Y 文 件 , 它 命 名数 据 库 的 起 始 文 件 。 如 果 不 使 用 关 键

Page 144: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

词 PRI M A R Y, 列 出 的 第 一 个 文 件 就 存储 为 主 文 件 。

n n 表 示 可 以 多 次 重 复 命 名 文 件 。LO G O N 如 果 使 用 LO G O N, 就 要 表 示 为 事 务 处

理 记 录 提 供 记 录 文 件 名 。 LO G O N 后 面跟 一 系 列 文 件 , 这 些 文 件 将 成 为 数 据库 的 记 录 文 件 。如 果 CRE A T E D A T A B A S E语 句 中 省 略 了 LO G O N, 就 将 建 立 一 个由 SQL S e r v e r 选 定 名 称 的 记 录 文 件 ,其 容 量 为 指 定 数 据 文 件 容 量 的 25% 。

FO R L O A D 只 向 后 兼 容 , SQ L S e r v e r 7 . 0 不 需要 该 变 量 , 因 为 SQL S e r v e r 可 以 在恢 复 时 建 立 数 据 库 。

FOR A T T A C H F O R A T T A C H 表 示 有 现 成 的 操 作 系 统 文件 集 , 必 须 提 供 定 义 第 一 个 主 文 件 的fi l e s p e c, 如 果 与 文 件 首 次 建 立 或 者最 后 附 加 时 的 路 径 不 同 , 还 需 要 为 不同 路 径 的 文 件 提 供 fil e s p e c 列 表 ,除 非 必 须 多 于 16 个 fi l e s p e c, 否 则 ,可 使 用 sp_ a t t a c h _ d b , 而 不 使 用CRE A T E D A T A B A S E F O R A T T A C H。

N A M E N A M E 指 要 引 用 的 文 件 的 逻 辑 名 称 。

Page 145: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

l o g i c a l _ f i l e _ n a m e 文 件 使 用 的 逻 辑 名 称 。FI L E N A M E F I L E N A M E 表 示 文 件 的 实 际 或 操 作 系 统

文 件 名 。′ os_ f i l e _ n a m e′ 在 本 地 服 务 器 上 使 用 的 操 作 系 统 文 件

名 和 路 径 。SI Z E 指 位 已 命 名 的 文 件 指 定 容 量 。si z e s i z e 是 文 件 的 起 始 容 量 , MB 或 KB 和

数 字 一 起 使 用 表 示 兆 字 节 或 千 字 节 ;缺 省 值 为 MB , 容 量 的 最 小 允 许 值 为1M B。 如 果 不 用 SI Z E, 建 立 文 件 时 ,数 据 文 件 的 容 量 为 3M B, 记 录 文 件 的容 量 为 1M B。

MA X S I Z E M A X S I Z E 表 示 提 供 文 件 可 能 扩 展 的 最大 容 量 。

ma x _ s i z e m a x _ s i z e 表 示 文 件 能 扩 展 的 最 大 容量 , 如 果 没 有 提 供 max _ s i z e, 文 件 将扩 展 到 磁 盘 满 为 止 。 当 磁 盘 接 近 某 一容 量 百 分 数 时 , 应 使 用 SQL S e r v e rA g e n t 生 成 警 告 。

UN L I M I T E D U N L I M I T E D 指 文 件 可 以 扩 展 至 磁 盘 满为 止 。

FIL E G R O W T H F I L E G R O W T H 表 示 提 供 文 件 扩 展 时 的 增

Page 146: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

量 , 其 总 值 不 能 超 过 MAX S I Z E。gr o w t h _ i n c r e m e n t g r o w t h _ i n c r e m e n t (缺 省 值 为 25 6 K B,

最 小 值 为 64 K B )给 出 扩 展 增 量 , 该 增量 化 整 至 最 接 近 64 K B。

示 例下 面 是 CRE A T E D A T A B A S E 语 句 的 示 例 :U S E m a s t e rG OC R E A T E D A T A B A S E m y d bO N( N A M E = ′ m y d b _ d a t 1′ ,F I L E N A M E = ′ c :\ m s s q l 7 \ da ta\ m y d b d a t . m d f′ ,S I Z E = 1 0 0 ,M A X S I Z E = 9 0 0 ,F I L E G R O W T H = 5 )L O G O N( N A M E = ′ m y d b _ l o g 1′ ,F I L E N A M E = ′ d :\ m s s q l 7 \ d a t a\ m y d b l o g . l d f′ ,S I Z E = 2 5 M B ,M A X S I Z E = 2 0 0 M B ,F I L E G R O W T H = 5 M B )G O

Page 147: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

在 本 例 中 , 数 据 文 件 和 记 录 文 件 中 建 立 了 一 个 新 的 数 据 库 。

C R E A T E D E F A U L T

C R E A T E D E F A U L T 语 句 建 立 一 个 需 要 限 制 列 或 用 户 定 义 的 数 据 类 型 的 对 象 (这就 是 最 好 使 用 CR E A T E 或 AL T E R T A B L E 语 句 中 DEF A U L T 子 句 的 原 因 )。 当 插 入 了一 行 , 而 又 没 有 提 供 数 值 时 , 利 用 用 户 定 义 的 数 据 类 型 , 其 缺 省 值 可 以 确 定 插入 一 列 或 所 有 列 中 的 数 值 。 如 果 重 复 使 用 缺 省 值 , 就 可 以 使 用 CRE A T E D E F A U L T语 句 , 因 为 它 比 编 写 CRE A T E T A B L E 语 句 更 为 有 效 。

语 法

C R E A T E D E F A U L T d e f a u l tA S c o n s t a n t _ e x p r e s s i o n变 量

d e f a u l t d e f a u l t 是 使 用 标 识 符 规 则 的 缺 省 名 称 。con s t a n t _ e x p r e s s i o n 常 数 表 达 式 是 常 数 值 , 而 不 是 数 据 库 的 对 象

名 称 。 可 以 使 用 任 意 常 数 、 函 数 、 数 学 表 达式 和 全 局 变 量 。 字 符 与 日 期 应 加 上 单 引 号 。二 进 制 数 据 加 Ox 前 缀 , 货 币 加 前 缀 美 元 符号 ( $)。

Page 148: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 CRE A T E D E F A U L T 语 句 的 示 例 :C R E A T E D E F A U L T P h o n e _ D e f a u l t A S ′ N o P h o n e N u m b e r′G Os p _ b i n d e f a u l t P h o n e _ D e f a u l t , ′ M y t a b l e . T e l e p h o n e _ N b r′G O

本 例 中 , 建 立 了 Pho n e _ D e f a u l t, 当 没 有 给 出 Myt a b l e 中 Te l e n h o n e _ N b r 列的 值 , 就 用 IN S E R T 语 句 在 该 列 中 插 入 字 符 “ No P h o n e N u m b e r”。

C R E A T E I N D E X

C R E A T E I N D E X 语 句 建 立 表 格 的 索 引 , 但 是 用 户 必 须 是 表 格 的 拥 有 者 , 如 果所 建 索 引 是 PRIM A R Y K E Y,可 在 CRE A T E T A B L E 或 A L T E R T A B L E 语 句 中 使 用 PR I M A R YK E Y 约 束 。 使 用 数 据 库 .表 格 拥 有 者 .表 名 限 制 表 名 , 并 限 制 数 据 库 和 拥 有 者 ,可 以 在 另 一 数 据 库 的 表 格 中 建 立 索 引 。

语 法

C R E A T E [ U N I Q U E] [ C L U S T E R E D | N O N C L U S T E R E D ]I N D E X i n d e x _ n a m e O N t a b l e ( c o l u m n [ , . . .n] )[ W I T H [ PA D _ I N D E X ]

Page 149: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[[ ,] F I L L F A C T O R = f i l l f ac to r] [[ ,] I G N O R E _ D U P _ K E Y ] [[ ,] D R O P _ E X I S T I N G] [[ ,] S T A T I S T I C S _ N O R E C O M P U T E ]][ O N f i l e g r o u p]

变 量

U N I Q U E U N I Q U E 表 示 建 立 唯 一 的 索 引 , 此 索 引 禁 止 组 成 该键 的 列 有 相 同 的 值 , SQ L S e r v e r 通 过 检 查 重 复 值来 保 证 上 述 情 况 。 SQL S e r v e r 不 允 许 在 带 有 重 复列 的 行 上 放 置 索 引 。 即 使 重 复 行 为 空 , 也 必 须 更新 或 删 除 它 们 才 能 建 立 唯 一 索 引 。

CL U S T E R E D C L U S T E R E D I N D E X 表 示 行 的 物 理 顺 序 与 行 的 索 引 顺序 相 同 , 这 些 行 带 有 保 存 数 据 行 的 成 簇 索 引 的 叶页 。 如 果 建 立 了 成 簇 索 引 , 表 格 中 的 所 有 非 成 簇索 引 也 都 重 建 。 这 表 示 第 一 步 应 先 建 立 成 簇 索 引 ,特 别 是 有 删 除 或 重 建 索 引 的 脚 本 时 就 更 应 如 此 。成 簇 索 引 是 已 分 类 的 表 格 , 所 以 建 立 成 簇 索 引 ,并 使 用 ON f i l e g r o u p 子 句 可 将 已 分 类 的 表 格 移 到在 CRE A T E I N D E X 语 句 中 指 定 的 新 文 件 组 上 , 要 保

Page 150: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

证 文 件 有 足 够 的 空 间 (表 格 所 需 空 间 的 1. 2 倍 )。NO N C L U S T E R E D N O N C L U S T E R E D 索 引 确 定 表 格 的 逻 辑 顺 序 。 与

CL U S T E R E D 索 引 不 同 , 逻 辑 顺 序 与 物 理 顺 序 不 同 ,NON C L U S T E R E D 索 引 包 含 有 实 际 物 理 行 的 指 针 , 指针 可 以 是 目 前 存 储 在 NON C L U S T E R E D 索 引 而 不 是 过去 版 本 的 Row I D ( R I D )中 的 成 簇 键 码 。 如 果 表 格没 有 CL U S T E R E D 索 引 , 指 针 就 指 向 由 文 件 ID、 页数 和 行 ID 组 成 的 行 。 每 个 表 格 最 多 可 以 有 249 个NO N C L U S T E R E D 索 引 。 但 是 , 表 格 中 索 引 越 多 , 它占 用 的 IN S E R T 行 就 越 长 。

ind e x _ n a m e i n d e x _ n a m e 是 索 引 的 名 称 , 而 且 , 按 照 标 识 符 规则 , 每 个 表 格 (不 是 每 个 数 据 库 )必 须 有 唯 一 的 索引 名 称 。

ta b l e t a b l e 是 包 含 进 行 索 引 的 列 的 表 格 名 称 。 如 果 提 供了 数 据 库 和 表 格 拥 有 者 , 且 有 许 可 , 就 可 以 在 另一 个 数 据 库 中 建 立 索 引 。

co l u m n c o l u m n 是 要 建 立 索 引 的 列 名 。 需 列 出 多 个 列 名 ,这 些 列 名 放 在 圆 括 号 内 , 并 用 逗 号 分 隔 开 , 按 建立 复 合 索 引 的 优 先 分 类 进 行 排 序 。 不 适 用 于 文 本 、图 像 、 位 和 已 计 算 的 列 , 它 们 也 不 能 用 作 任 何 索引 列 。 复 合 索 引 最 多 为 16 列 , 其 最 大 容 量 为 900字 节 。

Page 151: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

n n 指 前 面 的 列 可 以 重 复 。PA D _ I N D E X P A D _ I N D E X 指 将 FI L L F A C T O R 应 用 于 内 部 (非 叶 )索

引 页 (节 点 )以 及 叶 页 。FIL L F A C T O R =f i l l f a c t o r

F I L L F A C T O R 决 定 每 一 索 引 页 的 填 满 程 度 , 而 且 只在 第 一 次 创 建 索 引 时 使 用 , 但 是 页 面 的 实 际 填 满程 度 会 随 时 间 的 改 变 而 改 变 。 有 效 值 是 从 1~ 10 0,如 果 不 提 供 该 值 ,缺 省 值 为 0。可 以 用 sp_ c o n f i g u r e改 变 FI L L F A C T O R 的 缺 省 值 。如 果 FIL L F A C T O R 为 0,索 引 节 点 中 留 出 至 少 两 项 的 空 间 , 其 中 一 项 就 是索 引 页 面 的 索 引 指 针 。 如 果 FIL L F A C T O R 为 1 0 0,所 有 的 数 据 将 100% 地 压 缩 在 一 起 , 这 只 适 用 于 只读 表 格 。 当 然 , FIL L F A C T O R 决 定 索 引 和 数 据 (在 成簇 索 引 的 情 况 下 )在 磁 盘 上 占 有 的 空 间 量 。 用 户 定义 的 FIL L F A C T O R 越 低 , 索 引 和 数 据 页 就 需 要 越 多的 空 间 存 储 数 据 。

IGN O R E _ D U P _ K E Y I G N O R E _ D U P _ K E Y 决 定 重 复 键 和 其 他 行 一 起 插 入 唯一 成 簇 索 引 时 的 结 果 。 SQL S e r v e r 将 发 出 警 告 ,但 是 会 插 入 IN S E R T 中 非 重 复 键 的 其 他 行 。 忽 略 重复 键 的 行 , 且 不 插 入 它 们 , 如 果 不 使 用IGN O R E _ D U P _ K E Y , 将 部 插 入 所 有 的 行 , 不 只 是 重复 键 行 。

SOR T E D _ D A T A _ R E O R G S O R T E D _ D A T A _ R E O R G 通 知 SQ L S e r v e r, 数 据 已 经

Page 152: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

分 类 , 只 需 在 磁 盘 上 重 复 组 织 它 们 。 当 使 用FIL L F A C T O R O P T I O N , 改 变 数 据 在 页 面 中 的 存 储 方式 时 , 可 使 用 SOR T E D _ D A T A _ R E O R G 。 用 DBCCS H O W C O N T I G 可 决 定 表 格 是 否 分 段 , 是 否 需 要 重 新组 织 。

DRO P E X I S T I N G 使 用 DR O P E X I S T I N G 将 删 除 并 重 建 存 储 索 引 。 同时 更 新 所 有 已 有 的 非 成 簇 索 引 。 该 变 量 比 DR O P 和CR E A T E 更 有 效 , 因 为 只 需 进 行 一 次 更 新 , 而 不 必在 删 除 成 簇 索 引 后 更 新 一 次 , 在 重 建 成 簇 索 引 后再 更 新 一 次 。

STA T I S T I C S _ N O R E C O M P U TE

使 用 STA T I S T I C S _ N O R E C O M P U T E 也 可 以 提 高 效 率 ,这 表 示 指 索 引 统 计 数 字 不 会 自 动 重 新 计 算 。 使 用STA T I S T I C S _ N O R E C O M P U T E 可 能 带 来 伤 害 , 因 为 它不 能 提 供 查 询 优 化 程 序 进 行 分 布 统 计 , 也 就 不 能指 定 以 后 的 查 询 计 划 。

ON f i l e g r o u p O N f i l e g r o u p 表 示 放 置 索 引 的 文 件 组 。 如 果 不 使用 ON f i l e g r o u p, 索 引 将 与 表 格 放 在 相 同 的 文 件组 中 。

示 例下 面 是 CRE A T E I N D E X 语 句 的 示 例 :

C R E A T E I N D E X C o l u m n 1 _ 2 _ i n d O N M y t a b l e ( C o l u m n 1 , C o l u m n 2 )

Page 153: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 建 立 了 一 个 复 合 索 引 。

C R E A T E P R O C E D U R E

C R E A T E P R E C E D U R E 语 句 建 立 存 储 过 程 , 此 存 储 过 程 是 Tra n s a c t - S Q L 语 句 的编 译 集 , 能 有 选 择 性 地 接 受 变 量 。

语 法

C R E A T E P R O C[ E D U R E ] p r o c e d u r e _ n a m e [ ; n u m b e r][({ [ @ ] p a r a m e t e r d a t a _ t y p e } [ V A R Y I N G ] [ = d e f a u l t ][ O U T P U T] )

][ ,...n][W I T H { R E C O M P I L E | E N C R Y P T I O N | R E C O M P I L E , E N C R Y P T I O N }][ F O R R E P L I C A T I O N ]A S

Page 154: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

s q l _ s t a t e m e n t [ . . .n]变 量

p r o c e d u r e _ n a m e p r o c e d u r e _ n a m e 是 新 存 储 过 程 使 用 标识 符 规 则 的 名 称 , 存 储 过 程 名 对 于 数据 库 和 拥 有 者 是 唯 一 的 。 在 局 部 临 时程 序 的 名 称 前 加 一 个 英 磅 符 , 或 在 全局 临 时 程 序 的 名 称 前 加 两 个 英 磅 符 ,就 可 以 建 立 临 时 存 储 过 程 , 存 储 过 程也 可 创 建 为 启 动 存 储 过 程 , 在 SQLS e r v e r 用 sp _ m a k e s t a r t u p 系 统 存 储过 程 启 动 时 , 该 存 储 过 程 将 自 动 运行 。存 储 过 程 名 不 得 超 过 12 8 个 字 符 ,其 中 包 括 英 磅 符 “ #”。

; n u m b e r n u m b e r 是 个 整 数 , 用 于 将 同 名 的 程 序组 合 在 一 起 , 这 样 便 于 用 一 个 DROPP R O C E D U R E 语 句 将 它 们 全 部 删 除 。 名为 sam e n a m e ; 1 , s a m e n a m e ; 2 等 的 存 储过 程 可 以 用 “ DRO P P R O C E D U R Es a m e n a m e” 一 起 删 除 , 这 将 删 除 整 个组 , 一 旦 有 这 样 的 组 , 就 不 能 删 除 单个 程 序 。

[ @] pa r a m e t e r @ p a r a m e t e r 指 程 序 的 参 数 或 变 量 。0,1

Page 155: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

或 1 个 以 上 的 变 量 都 可 以 在 CRE A T EP R O C E D U R E 语 句 中 声 明 。 如 果 没 有 编写 缺 省 值 , 当 运 行 程 序 时 , 由 用 户 提供 每 个 声 明 变 量 的 值 。 变 量 最 多 可 以有 1024 个 , 每 个 变 量 都 是 存 储 过 程的 局 部 变 量 。

da t a _ t y p e d a t a _ t y p e 是 指 变 量 或 参 数 的 数 据 类型 。 游 标 数 据 类 型 只 能 用 于 输 出 变量 , 而 且 必 须 同 VA R Y I N G 一 起 使 用 。

VA R Y I N G V A R Y I N G 将 返 回 集 定 义 为 输 出 参 数 ,它 用 于 游 标 数 据 类 型 。

de f a u l t d e f a u l t 是 指 变 量 或 参 数 的 缺 省 值 ,它 必 须 是 个 常 数 。 利 用 缺 省 值 , 不 必提 供 参 数 或 变 量 的 值 , 就 能 运 行 存 储过 程 。 如 果 以 后 和 LIKE 一 起 使 用 变量 , 就 可 以 使 用 通 配 符 (% ,_ ,[ ] 和[ ^], 缺 省 值 可 以 是 NULL。

OU T P U T O U T P U T 表 示 参 数 或 变 量 是 返 回 参 数 。值 返 回 至 调 用 程 序 , 不 适 用 于 文 本 参数 , 因 为 它 们 不 能 用 作 OUT P U T 参 数或 变 量 , 但 是 关 键 词 OUT P U T 可 以 保存 游 标 占 位 符 。

Page 156: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

n n 指 前 面 的 项 可 以 重 复 。{RE C O M P I L E | EN C R Y P T I O N |R E C O M P I L E, EN C R Y P T I O N }

R E C O M P I L E 指 每 次 运 行 存 储 过 程 时 都重 新 编 译 它 。 ENC R Y P T I O N 通 知 SQLS e r v e r 为 存 储 过 程 加 密 存 储 在sys c o m m e n t s 系 统 表 中 的 行 。

FOR R E P L I C A T I O N F O R R E P L I C A T I O N 表 示 由 该 子 句 特 地为 复 制 建 立 的 存 储 过 程 不 能 在 预 定 服务 器 上 运 行 , 它 用 于 建 立 只 能 通 过 复制 来 执 行 的 筛 选 存 储 过 程 。 FORR E P L I C A T I O N 不 能 和 REC O M P I L E 选 项一 起 使 用 。

AS A S 先 于 程 序 执 行 的 语 句 。sql _ s t a t e m e n t S Q L 语 句 指 存 储 过 程 中 要 运 行 的 多 个

Tra n s a c t - S Q L 语 句 。n n 指 可 能 有 多 个 SQ L 语 句 。

示 例下 面 是 CRE A T E P R O C E D U R E 的 示 例 :

C R E A T E P R O C E D U R E M y P r o c e d u c eA SS E L E C T C o l u m n 1 , C o l u m n 2

Page 157: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M M y t a b l eW H E R E C o l u m n 3 = 8G O

本 例 中 , 建 立 了 一 个 存 储 过 程 。

C R E A T E R U L E

C R E A T E R U L E 建 立 数 据 库 对 象 ru l e。 规 则 可 以 连 接 列 或 用 户 定 义 的 数 据 类 型 ,决 定 哪 些 值 可 以 放 在 列 中 。 或 者 可 以 用 CHE C K C O N S T R A I N T S 来 查 看 , 因 为 可 以在 一 列 或 多 个 列 上 定 义 多 个 约 束 。 一 列 只 能 连 接 一 个 规 则 。

语 法

C R E A T E R U L E r u l eA S c o n d i t i o n _ e x p r e s s i o n

变 量

r u l e r u l e 是 使 用 标 识 符 规 则 的 规 则 名 称 。con d i t i o n _ e x p r e s s i o n c o n d i t i o n _ e x p r e s s i o n 是 在 定 义 规 则

的 WHE R E 子 句 中 有 效 的 任 意 表 达 式 。规 则 不 能 引 用 任 何 其 它 的 列 或 数 据 库

Page 158: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

对 象 。 列 中 的 新 值 以 加 ′ @ ′ 前 缀 的标 识 符 表 示 。

示 例下 面 是 CRE A T E R U L E 的 示 例 :C R E A T E R U L E C o l o r _ R u l eA S@ c o l o r I N (′ R e d ′ , ′ B l u e ′ ,′ Y e l l o w′ )G Os p _ b i n d r u l e ′ C o l o r _ R u l e ′ , ′ M y t a b l e . C o l u m n 3′G O

本 例 中 , 规 则 创 建 为 数 据 库 对 象 , 并 与 列 相 连 接 。 也 可 将 规 则 与 用 户 定 义的 数 据 类 型 相 连 接 。 用 sp_ u n b i n d r u l e 切 断 与 对 象 的 连 接 。

C R E A T E S C H E M A

C R E A T E S C H E M A 建 立 模 式 , 模 式 是 没 有 数 据 的 数 据 库 结 构 , 它 可 用 于 开 发 环境 或 测 试 环 境 。

语 法

C R E A T E S C H E M A[ A U T H O R I Z A T I O N o w n e r]

Page 159: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ s c h e m a _ e l e m e n t [ s c h e m a _ e l e m e n t 2 [ . . . s c h e m a _ e l e m e n t n ]]]

变 量A U T H O R I Z A T I O N o w n e r A U T H O R I Z A T I O N o w n e r 是 数 据 库 中 有

效 安 全 帐 户 的 注 册 ID。sc h e m a _ e l e m e n t = { t a b l e _ d e f i n i t i o n| vi e w _ d e f i n i t i o n |gr a n t _ s t a t e m e n t }

t a b l e _ d e f i n i t i o n = C R E A T E T A B L E语 句 , 它 在 此 模 式 中 建 立 表 格 。vie w _ d e f i n i t i o n = C R E A T E V I E W 语句 , 它 在 此 模 式 中 建 立 视 图 ,gra n t _ s t a t e m e n t = G R A N T 语 句 , 它 在此 模 式 中 给 用 户 或 用 户 组 授 予 许 可 。

示 例下 面 是 CREA T E S C H E M A 语 法 的 示 例 :

C R E A T E S C H E M A A U T H O R I Z A T I O N M y A c c o u n tG R A N T S E L E C T o n V i e w 1 T O p u b l i cC R E A T E V I E W V i e w 1 ( C o l u m n 1 ) A S S E L E C T C o l u m n 1 f r o m M y T a b l eC R E A T E T A B L E M y T a b l e ( C o l u m n 1 i n t )本 例 中 , 为 安 全 帐 户 所 拥 有 的 数 据 库 对 象 创 建 MyA c o u n t 模 式 。

Page 160: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C R E A T E T A B L E

C R E A T E T A B L E 指 在 数 据 库 中 建 立 新 的 表 格 。语 法C R E A T E T A B L E t a b l e _ n a m e( { < c o l u m n _ d e f i n i t i o n >| c o l u m n _ n a m e A S c o m p u t e d _ c o l u m n _ e x p r e s s i o n| < t a b l e _ c o n s t r a i n t >} [ , . . . n ])[ O N { f i l e g r o u p / D E F A U L T }][ T E X T I M A G E _ O N f i l eg roup ]< c o l u m n _ d e f i n i t i o n > : : = { c o l u m n _ n a m e d a t a _ t y p e }[ N U L L | N O T N U L L ][ ID E N T I T Y [ ( s e e d [ , i n c r e m e n t ] )[ N O T F O R R E P L I C A T I O N ] ] ][ R O W G U I D C O L ][ < c o l u m n _ c o n s t r a i n t > ::=[ C O N S T R A I N T c o n s t r a i n t _ n a m e ]{ { P R I M A R Y K E Y \ U N I Q U E }[ C L U S T E R E D | N O N C L U S T E R E D ]

Page 161: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ W I T H [ F I L L F A C T O R = f i l l f ac to r ][ O N f i l l e g r o u p ]| [ F O R E I G N K E Y ]R E F E R E N C E S r e f _ t a b l e[ ( r e f _ c o l u m n ) ][ N O T F O R R E P L I C A T I O N ]| D E F A U L T c o n s t a n t _ e x p r e s s i o n| C H E C K [ N O T F O R R E P L I C A T I O N ]( l o g i c a l _ e x p r e s s i o n )}] [ . . . n ]< t a b l e _ c o n s t r a i n t > : : = [ C O N S T R A I N T c o n s t r a i n t _ n a m e ]{[ { P R I M A R Y K E Y | U N I Q U E }[ C L U S T E R E D | N O N C L U S T E R E D ]{ ( c o l u m n [ ,... n ] ) }[ W I T H [ F I L L F A C T O R = f i l l f ac to r ] ][ O N { f i l e g r o u p / D E F A U L T }]]| F O R E I G N K E Y[ ( c o l u m n [ , . . .n] )]

Page 162: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E F E R E N C E S r e f _ t a b l e [ ( r e f _ c o l u m n [ , . . .n] )][ N O T F O R R E P L I C A T I O N ]| C H E C K [ N O T F O R R E P L I C A T I O N ]( s e a r c h _ c o n d i t i o n s )}变 量

t a b l e t a b l e 是 要 建 立 的 表 格 名 称 。col u m n _ n a m e c o l u m n _ n a m e 是 要 建 立 的 列 名 , 时 间

戳 数 据 类 型 可 以 省 略 列 名 。tim e s t a m p将 成 为 SQL S e r v e r 所 使 用 的 列 名 。

AS c o m p u t e d _ c o l u m n _ e x p r e s s i o n 已 计 算 的 列 是 虚 拟 列 , 它 是 个 新 选项 , 现 在 , 已 计 算 的 列 可 以 存 储 和 检索 ,但 不 能 IN S E R T 或 U P D A T E 计 算 列 。计 算 列 不 能 用 作 PRI M A R Y K E Y ,U N I Q U E、 FO R E I G N K E Y 或 CHECK 约 束中 的 关 键 列 。

ON f i l e g r o u p O N f i l e g r o u p 决 定 为 约 束 建 立 的 表 格在 磁 盘 上 驻 留 的 位 置 。 如 果 不 用 ONfi l e g r o u p , 表 格 将 放 在 缺 省 的 文 件组 中 。

da t a _ t y p e d a t a _ t y p e 与 新 列 的 SQL S e r v e r 数 据类 型 有 关 , 如 果 使 用 唯 一 标 记 符 数 据

Page 163: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

类 型 , 而 且 表 中 有 现 成 的 行 , 就 可 以用 DE F A U L T 约 束 和 NEW I D ( )函 数 , 为现 有 行 中 的 新 列 生 成 唯 一 标 识 符 值 。

NU L L| NO T N U L L N U L L| NO T N U L L 决 定 列 是 否 可 以 保 存NU L L 值 。

ID E N T I T Y I D E N T I T Y 是 用 来 在 新 列 中 放 置 递 增 整数 的 属 性 。 将 来 添 加 新 列 时 , 该 属 性也 为 真 。

se e d s e e d 与 用 IDE N T I T Y 属 性 添 加 一 列 时希 望 在 第 一 行 中 出 现 的 的 整 数 值 有关 , 它 表 示 新 ID E N T I T Y 列 的 值 开 始的 位 置 。 如 果 不 用 此 关 键 词 , SQLS e r v e r 将 列 的 种 子 值 定 为 1。

in c r e m e n t 如 果 用 ID E N T I T Y 属 性 添 加 一 列 ,Inc r e m e n t 是 指 在 添 加 新 行 时 , 新ID E N T I T Y 列 中 的 值 的 增 量 。 如 果 不 使用 inc r e m e n t, SQ L S e r v e r 对 所 添 加的 最 后 一 行 中 的 值 增 加 1。

NOT F O R R E P L I C A T I O N 如 果 使 用 复 制 , 并 用 IDE N T I T Y 属 性添 加 一 列 , 就 可 以 用 NOT F O RR E P L I C A T I O N 通 知 SQL S e r v e r,当 SQLS e r v e r 系 统 复 制 注 册 (例 如 sqlr e p l )

Page 164: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

将 数 据 插 入 表 格 中 时 , 不 施 加ID E N T I T Y 条 件 。

ROW G U I D C O L R O W G U I D C O L 属 性 是 全 局 唯 一 标 识 符列 , 它 只 能 分 配 给 唯 一 标 识 符 列 , 而且 每 个 表 格 一 个 。

CON S T R A I N T C O N S T R A I N T 选 项 是 如 何 建 立 PRIM A R YK E Y 、 UN I Q U E 、 F O R E I G N K E Y 、 CHECK或 D E F A U L T 约 束 。 CON S T R A I N T S 用 来保 持 数 据 的 完 整 性 。 添 加 CON S T R A I N T可 以 建 立 索 引 。

con s t r a i n t _ n a m e c o n s t r a i n t _ n a m e 是 指 新 建 立 的CON S T R A I N T 名 称 。 如 果 没 有 给CON S T R A I N T 命 名 , SQ L S e r v e r 将 为其 命 名 。

PRI M A R Y K E Y P R I M A R Y K E Y 是 一 种 约 束 (每 个 表 格 只有 一 个 ), 它 在 列 中 建 立 唯 一 索 引 ,并 将 列 指 定 为 表 格 的 主 键 。 如 果 计 划在 引 用 此 表 的 其 它 表 格 中 包 含FO R E I G N K E Y , 就 需 要 一 个 PRIM A R YK E Y。

U N I Q U E 列 值 对 于 表 格 可 以 是 唯 一 的 , 但 不 指定 为 主 键 。 UN I Q U E 约 束 在 列 中 建 立 唯

Page 165: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

一 的 索 引 。CLU S T E R E D | N O N C L U S T E R E D 要 建 立 一 个 PRIM A R Y K E Y ( 缺 省

CL U S T E R E D ) 或 唯 一 UNIQ U E ( 缺 省NO N C L U S T E R E D )约 束 , CLU S T E R E D 或 者NO N C L U S T E R E D 决 定 要 添 加 的 索 引 类型 。

WIT H F I L L F A C T O R = f i l l f a c t o r W I T H F I L L F A C T O R 描 述 每 个 索 引 页 有多 少 数 据 。 可 选 值 为 1~ 10 0, 缺 省 值为 0, 以 百 分 数 表 示 。 填 充 因 子 越 低 ,可 用 空 间 就 越 多 。 这 样 就 在 页 面 上 留下 较 多 的 空 间 以 插 入 新 行 , 而 不 必 强迫 SQL S e r v e r 为 新 行 分 配 较 多 的 空间 。

ON f i l e g r o u p O N f i l e g r o u p 确 定 为 约 束 建 立 的 索 引在 磁 盘 上 驻 留 的 位 置 。 如 果 不 使 用 ONfi l e g r o u p , 索 引 将 和 表 格 放 在 相 同文 件 组 中 。

FOR E I G N K E Y⋯ RE F E R E N C E S F O R E I G N K E Y⋯ RE F E R E N C E S 建 立 约 束并 通 过 保 证 列 中 的 每 一 项 存 在 于 引 用表 格 的 列 中 来 实 施 引 用 的 完 整 性 。

re f _ t a b l e r e f _ t a b l e 是 指 FO R E I G N K E Y 约 束 是引 用 的 表 格 名 称 。

Page 166: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

r e f _ c o l u m n r e f _ c o l u m n 是 指 FO R E I G N K E Y 约 束 所引 用 的 列 。

NOT F O R R E P L I C A T I O N 如 果 使 用 复 制 , 并 用 IDE N T I T Y 属 性添 加 列 , 就 可 以 用 NOT FORR E P L I C A T I O N 通 知 SQL S e r v e r,当 SQLS e r v e r 系 统 复 制 注 册 (例 如 sqlr e p l )将 数 据 插 入 到 表 格 中 时 , 不 施 加ID E N T I T Y 条 件 。

DE F A U L T D E F A U L T 是 一 种 约 束 , 它 决 定 如 果 为IN S E R T 上 的 列 指 定 数 值 , 在 列 中 插 入哪 些 值 。 对 带 有 时 间 戳 的 数 据 类 型 、ID E N T I T Y 属 性 或 另 一 个 DEFA U L T 约 束的 列 不 能 使 用 该 约 束 , 因 为 一 列 只 能有 一 个 值 。

con s t a n t _ e x p r e s s i o n c o n s t a n t _ e x p r e s s i o n 和 DE F A U L T 一起 使 用 , 作 为 列 的 缺 省 值 , 它 可 以 是常 数 , NULL 或 系 统 函 数 。

CH E C K C H E C K 是 一 种 约 束 , 它 限 制 可 以 插 入列 中 的 值 。

log i c a l _ e x p r e s s i o n l o g i c a l _ e x p r e s s i o n 可 以 引 用 同 一 行中 其 他 的 列 , 并 返 回 真 或 假 。

co l u m n[ ,⋯ n] co l u m n 代 表 约 束 的 列 的 清 单 。

Page 167: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 CRE A T E T A B L E 语 句 的 示 例 :C R E A T E T A B L E M y t a b l e(M yTable ID in t iden t i ty ,M y D a t e d a t e t i m e ,U s e d B y N a m e A S U S E R _ N A M E ( ))

本 例 中 , 建 立 了 表 格 , 并 将 USE R _ N A M E 系 统 函 数 作 为 计 算 列 Use d B y N a m e。

C R E A T E T R I G G E R

C R E A T E T R I G G E R 建 立 触 发 器 , 该 触 发 器 定 义 为 一 种 特 殊 的 存 储 过 程 , 且 该 存 储过 程 在 用 户 发 出 作 用 于 表 格 的 INS E R T、 UP D A T E 或 DE F A U L T 语 句 时 运 行 。 如 果 表格 上 有 CONS T R A I N T S, 它 们 将 在 引 发 触 发 器 前 检 查 约 束 。 如 果 CON S T R A I N T 的 有效 性 检 查 失 败 ,将 不 引 燃 触 发 器 。 现 在 , 对 于 任 意 的 INSER T、U P D A T E 或 D E F A U L T语 句 , 可 以 有 多 个 触 发 器 。

语 法

C R E A T E T R I G G E R t r i g g e r _ n a m e

Page 168: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

O N t a b l e[ W I T H E N C R Y P T I O N ]{{ F O R { [ ,] [ I N S E R T ] [ ,] [ U P D A T E [ ,] [ D E L E T E ] }[ W I T H A P P E N D ][ N O T F O R R E P L I C A T I O N ]A S

s q l _ s t a t e m e n t [ , . . .n]}|{ F O R { [ ,] [ I N S E R T ] [ ,] [ U P D A T E ] }[ W I T H A P P E N D ][ N O T F O R R E P L I C A T I O N ]A SI F U P D A T E ( c o l u m n )[ { A N D | O R } U P D A T E ( c o l u m n ) [ , . . .n]]

s q l _ s t a t e m e n t [ , . . . n ]| I F ( C O L U M N S _ U P D A T E D ( ) { b i t w i s e _ o p e r a t o r } u p d a t e d _ b i t m a s k ){ c o m p a r i s o n _ o p e r a t o r } c o l u m n _ b i t m a s k [ . . .n]}}

Page 169: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量t r i g g e r _ n a m e t r i g g e r _ n a m e 是 指 使 用 标 识 符 规 则 的

触 发 器 名 。 在 数 据 库 中 该 变 量 是 唯 一的 。

ta b l e 指 触 发 器 运 行 的 表 格 。WIT H E N C R Y P T I O N W I T H E N C R Y P T I O N 加 密 触 发 器 的

sys c o m m e n t s 系 统 表 格 行 。{[ ,][ INS E R T][ ,][ UPDA T E ][ ,][ DELE T E ] }| {[ ,][ INSE R T ][ ,][ UP D A T E] }

I N S E R T、 U P D A T E A N D D E L E T E 是 引 发或 运 行 触 发 器 的 数 据 修 改 语 句 。 可 以以 任 意 顺 序 将 它 们 组 合 在 一 起 使 用 ,并 用 逗 号 分 隔 开 它 们 。

WIT H A P P E N D W I T H A P P E N D 指 要 添 加 现 有 类 型 的 另一 个 触 发 器 (兼 容 级 别 低 于 70 时 , 只向 后 兼 容 )

NO T F O R R E P L I C A T I O N 如 果 复 制 修 改 表 格 ,且 使 用 着 NOT F O RR E P L I C A T I O N, 将 不 运 行 触 发 器 。

AS A S 优 先 于 触 发 器 执 行 的 语 句 。sql _ s t a t e m e n t T r a n s a c t - S Q L 语 句 建 立 触 发 器 , 但 不

应 用 来 将 数 据 返 回 给 用 户 。 只 供 触 发器 调 用 进 行 删 除 或 插 入 的 特 殊 表 格 叫概 念 表 格 。 它 们 类 似 于 表 格 , 在 其 上放 置 触 发 器 并 保 存 变 化 的 行 的 新 旧 数

Page 170: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

值 。 可 以 在 触 发 器 中 引 用 它 们 。

示 例下 面 是 CRE A T E T R I G G E R 语 句 的 示 例 :

C R E A T E T R I G G E R M y T r i g g e rO N M y T a b l eF O R I N S E R T , U P D A T E , D E L E T EA SE X E C m a s t e r . . x p _ s e n d m a i l ′ g a y l e c o f′ , ′ M y T a b l e h a s c h a n g e d .′G O

本 例 中 , 建 立 了 表 格 变 化 时 发 送 邮 件 的 触 发 器 。

C R E A T E V I E W

C R E A T E V I E W 语 句 建 立 虚 拟 的 表 格 , 此 表 格 表 示 数 据 的 逻 辑 视 图 , 而 不 直 接访 问 物 理 表 格 。CRE A T E V I E W 不 能 使 用 OR D E R B Y 子 句 ,CO M P U T E 子 句 ,或 CO M P U T EB Y 子 句 , 或 关 键 词 IN T O, 也 不 能 引 用 临 时 表 。

语 法

C R E A T E V I E W v i e w _ n a m e[ ( c o l u m n [ , . . .n] )]

Page 171: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

W I T H E N C R Y P T I O N]A S

s e l e c t _ s t a t e m e n t[ W I T H C H E C K O P T I O N ]

变 量

v i e w _ n a m e v i e w _ n a m e 是 指 使 用 标 识 符 规 则 的 视图 名 称 。

co l u m n c o l u m n 指 视 图 中 的 列 名 。n n 指 列 可 以 重 复 。WIT H E N C R Y P T I O N 加 密 视 图 的 sys c o m m e n t s 系 统 表 格

行 。AS 视 图 的 操 作 。sel e c t _ s t a t e m e n t 定 义 视 图 的 Tra n s a c t S Q L - S E L E C T 语

句 。WIT H C H E C K O P T I O N W I T H C H E C K O P T I O N 保 证 修 改 视 图 数

据 以 后 , 可 通 过 视 图 看 见 数 据 。

示 例下 面 是 CRE A T E V I E W 语 句 的 示 例 :

Page 172: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C R E A T E V I E W M y V i e w ( C o l u m n 1 , C o l u m n 2 , C o l u m n 3 )W I T H E N C R Y P T I O NA SS E L E C T a . C o l u m n 1 , a . C o l u m n 2 , b . C o l u m n 3F R O M M y T a b l e a , Y o u r T a b l e bW H E R E a . C o l u m n 1 = b . C o l u m n 1G O

C U R R E N T _ T I M E S T A M P

C U R R E N T _ T I M E S T A M P 可 以 用 作 函 数 , 或 者 在 CRE A T E T A B L E 或 A L T E R T A B L E语 句 中 与 DEF A U L T 约 束 一 起 使 用 , 对 保 存 当 前 数 据 和 时 间 的 列 建 立 缺 省 值 。

语 法

C U R R E N T _ T I M E S T A M P

示 例下 面 是 CUR R E N T _ T I M E S T A M P 函 数 的 示 例 :

Page 173: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D E C L A R E @ m y v a r i a b l e d a t e t i m eS E T @ m y v a r i a b l e = C U R R E N T _ T I M E S T A M P

本 例 中 , 将 当 前 的 数 据 与 时 间 提 供 给 局 部 变 量 Myv a r i a b l e。

C U R R E N T _ U S E R

C U R R E N T _ U S E R 可 用 作 函 数 , 也 可 以 和 CREA T E T A B L E 或 ALT E R T A B L E 语 句 中的 DE F A U L T 约 束 一 起 使 用 , 为 保 存 当 前 用 户 的 列 建 立 缺 省 值 。

语 法

C U R R E N T _ U S E R

示 例下 面 是 CUR R E N T _ U S E R 函 数 的 示 例 :

D E C L A R E @ m y v a r l a b l e s y s n a m eS E T @ m y v a r i a b l e = C U R R E N T _ U S E R

本 例 中 , 将 当 前 游 标 提 供 给 局 部 变 量 myv a r i a b l e。

Page 174: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

游 标 数 据 类 型

游 标 数 据 类 型 用 于 创 建 游 标 变 量 , 需 要 用 它 作 为 游 标 OUT P U T 变 量 , 它 不 能用 于 CRE A T E T A B L E 语 句 。 只 能 用 SET @ l o c a l _ v a r i a b l e 语 句 和 CUR S O R _ S T A T U S函 数 对 游 标 数 据 类 型 进 行 操 作 。

C U R S O R _ S T A T U S

C U R S O R _ S T A T U S 为 一 标 量 函 数 , 它 允 许 通 知 存 储 过 程 的 调 用 者 , 存 储 过 程 是否 为 给 定 的 参 数 返 回 游 标 和 结 果 集 。

如 果 返 回 值 为 1, 游 标 的 结 果 集 至 少 有 一 行 用 于 感 应 游 标 、 不 感 应 游 标 和 动态 游 标 ; 返 回 集 有 0, 1 或 多 行 。 打 开 游 标 , 如 果 返 回 值 为 0, 游 标 的 返 回 集 为空 , 如 果 返 回 值 为 -1, 关 闭 光 标 。 如 果 返 回 值 为 -2, 就 没 有 给 已 声 明 的 游 标 变量 分 配 游 标 。 如 果 返 回 值 为 -3, 指 定 名 称 的 游 标 不 存 在 或 者 还 没 有 给 它 分 配 游标 。

语 法

C U R S O R _ S T A T U S({{′ l o c a l′ , c u r s o r _ n a m e }

Page 175: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

|{′ g l o b a l′ , c u r s o r _ n a m e }|{′ va r i ab l e ′ , c u r s o r _ v a r i a b l e}})

变 量′ lo c a l′ lo c a l 是 一 常 数 , 表 示 游 标 是 本 地 游

标 。cur s o r _ n a m e c u r s o r _ n a m e 是 使 用 标 识 符 规 则 的 游

标 名 称 。′ gl o b a l′ g l o b a l 是 一 常 数 , 表 示 游 标 是 全 局 游

标 。′ vari a b l e′ v a r i a b l e 是 一 常 数 , 表 示 游 标 源 是 一

局 部 变 量 。cur s o r _ v a r i a b l e c u r s o r 是 用 CU R S O R 数 据 类 型 定 义 的

游 标 变 量 名 。

c u r s o r s

使 用 游 标 时 , 最 好 一 次 处 理 结 果 集 的 一 行 。 现 在 , 可 以 用 游 标 数 据 类 型 将 游 标赋 给 变 量 或 参 数 , 下 面 的 语 句 可 与 游 标 一 起 使 用 : DEC L A R E C U R S O R, CLOSZ ,DEC L A R E @ l o c a l _ v a r i a b l e,DE A L L O C A T E,OPE N,UP D A T E,S E T,DE L E T E,F E T C H,

Page 176: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C R E A T E P R O C E D U R E 。 下 面 的 全 局 变 量 可 与 游 标 一 起 使 用 : @@c u r s o r _ r o w s ,@@ f e t c h _ s t a t u s , CU R S O R _ S T A T U S , 下 列 系 统 存 储 过 程 可 与 游 标 一 起 使 用 :sp_ d e s c r i b e _ c u r s o r 、 sp _ d e s c r i b e _ c u r s o r _ c o l u m n s 、sp _ d e s c r i b e _ c u r s o r _ t a b l e s、 sp _ c u r s o r _ l i s t。

D A T A B A S E P R O P E R T Y

当 需 要 提 供 数 据 库 和 属 性 名 称 时 , DAT A B A S E P R O P E R T Y 可 返 回 指 定 数 据 库 的属 性 值 , 该 值 为 1=Tru e, 0 = F a l s e, N U L L (如 果 输 入 出 错 )。

语 法

D A T A B A S E P R O P E R T Y ( ′ d a t a b a s e′ , ′ p r o p e r t y ′ )

变 量

′ data b a s e′ da t a b a s e 是 指 想 获 得 信 息 的 数 据 库 名 称 。′ prop e r t y′ pr o p e r t y 是 返 回 信 息 的 数 据 库 属 性 名 称 , 这 些 属 性 包 括 :

Is A n s i N u l l D e f a u l t = S Q L - 9 2 无 效 性 能IsA n s i N u l l s E n a b l e d = 将 空 值 赋 给 未 知 数 , 进 行 比 较IsA n s i W a r n i n g s E n a b l e d = 出 现 错 误 时 给 出 警 告 信 息IsA u t o C l o s e = 最 后 一 个 用 户 退 出 系 统 后 关 闭 数 据 库IsA u t o S h i n k = 自 动 压 缩 数 据 库 文 件

Page 177: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I s B u l k C o p y =因 某 些 操 作 登 录 没 发 生IsC l o s e C u r s o r s O n C o m m i t E n a b l e d = 当 提 交 事 务 时 关 闭 游 标IsD b o O n l y = 只 有 数 据 库 拥 有 者 能 访 问 数 据 库IsD e t a c h e d =用 sp _ d e t a c h _ d b 分 离 数 据 库IsE m e r g e n c y M o d e = 应 急 模 式 允 许 使 用 可 疑 的 数 据 库IsF u l l t e x t E n a b l e d =允 许 使 用 全 文 数 据 库IsI n L o a d = 恢 复 数 据 库IsI n R e c o r e r y = 正 在 恢 复 数 据 库IsI n S t a n d B y = 只 读 数 据 库 , 附 带 恢 复 记 录IsL o c a l C u r s o r s D e f a u l t = D e f a u l t 表 示 声 明 游 标 为 LO C A LI s N o t R e c o v e r e d = 数 据 库 没 有 恢 复IsN u l l C o n c a t = N U L L 并 置 数 提 供 NU L L 结 果 集IsO f f l i n e = 脱 机 数 据 库IsQ u o t e d I d e n t i f i e r s E n a b l e d = 有 效 标 识 符 可 以 使 用 双 引号IsR e a d O n l y = 只 读 数 据 库IsR e c u r s i v e T r i g g e r s E n a b l e d = 循 环 触 发 器IsS h u t D o w n =数 据 库 的 启 动 问 题IsS i n g l e U s e r = 只 有 一 个 用 户 可 以 使 用 数 据 库IsS u s p e c t = 可 疑 的 数 据 库IsT r u n c l o g = 检 查 点 截 断 数 据 库 的 事 务 处 理 记 录Ver s i o n =已 关 闭 的 数 据 库 的 版 本 号 或 NU L L

Page 178: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 DAT A B A S E P R O P E R T Y 函 数 的 示 例 :

U S E m a s t e rS E L E C T D A T A B A S E P R O P E R T Y (′ m a s t e r′ ,′ I s T r u n c l o g′ )

本 例 中 , 返 回 值 为 ma s t e r 系 统 数 据 库 中 的 IsT r u n c l o g 属 性 设 置 , 返 回 值为 1 表 示 真 , 0 为 假 , NU L L 表 示 没 找 到 值 。

数 据 类 型

数 据 类 型 决 定 列 、 存 储 过 程 参 数 和 局 部 变 量 的 数 据 特 征 , 分 为 系 统 提 供 的数 据 类 型 和 用 户 定 义 的 数 据 类 型 , 系 统 提 供 的 数 据 类 型 在 下 面 几 节 中 列 出 。

(一 ) 二 进 制 数 据 ( B i n a r y D a t a )

二 进 制 数 据 的 数 据 类 型 有 :

bi n a r y b i n a r y 是 固 定 长 度 的 数 据 类 型 , 最 多可 以 有 80 0 0 个 字 节 。

va r b i n a r y v a r b i n a r y 是 可 变 长 度 的 数 据 类 型 ,最 多 可 以 有 8000 个 字 节 。

Page 179: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

(二 ) 字 符 数 据 ( C h a r a c t e r D a t a )

字 符 数 据 的 数 据 类 型 有 :ch a r c h a r 指 固 定 长 度 的 数 据 类 型 ,最 多 可 以 有 8000 个 A N S T

字 符 。va r c h a r v a r c h a r 是 可 变 长 度 的 数 据 类 型 , 最 多 可 以 有 8000 个

AN S I 字 符 。nc h a r n c h a r 指 固 定 长 度 的 数 据 类 型 , 最 多 可 以 有 40 0 0 个

Uni c o d e (统 一 长 度 )的 字 符 。 Un i c o d e 字 符 表 示 每 字 符 2个 字 节 。 UN I C O D E 包 括 所 有 国 际 通 用 字 符 。

nv a r c h a r n v a r c h a r 是 可 变 长 度 的 数 据 类 型 , 最 多 可 以 有 40 0 0 个Uni c o d e (统 一 长 度 )的 字 符 。 Un i c o d e 字 符 表 示 每 字 符 2个 字 节 。 UN I C O D E 包 括 所 有 国 际 通 用 字 符 。

(三 ) 日 期 和 时 间 数 据 ( D a t e a n d T i m e D a t a )

日 期 和 时 间 数 据 的 类 型 :

da t e t i m e d a t e t i m e 数 据 类 型 的 可 能 值 是 从 1753年 1 月 1 日 开 始 , 到 99 9 9 年 12 月 31

Page 180: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

日 。sma l l d a t e t i m e s m a l l d a t e t i m e 数 据 类 型 没 有

da t e t i m e 数 据 类 型 精 确 (da t e t i m e 精确 至 1/ 30 0 秒 , sma l l d a t e t i m e 精 确至 1 分 钟 ), 它 的 可 能 值 从 19 0 0 年 1月 1 日 开 始 , 到 2079 年 6 月 6 日 。da t e t i m e 数 据 占 8 个 字 节 ,sma l l d a t e t i m e 数 据 占 4 个 字 节 。

(四 ) 精 确 数 字 数 据 ( E x a c t N u m e r i c D a t a )

精 确 值 数 据 类 型 有 :

de c i m a l d e c i m a l 是 一 种 精 确 值 数 据 类 型 , 其可 能 值 从 -1 0 3 8- 1 开 始 , 到 10 3 8- 1。

n u m e r i c 和 d e c i m a l 数 据 类 型 相 同 。in t i n t 是 只 保 存 整 数 的 数 据 类 型 , 此 整

数 值 从 -2 31- 1 ( - 2, 1 4 7, 48 3, 64 8 )到2 3 1- 1 ( 2, 1 4 7, 48 3, 64 7 )。

sm a l l i n t s m a l l i n t 也 是 一 种 只 存 整 数 的 数 据类 型 ,此 整 数 值 从 -2 1 5( - 3 2,7 6 8 ) 开

Page 181: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

始 到 2 1 5- 1 ( 3 2, 667)。ti n y i n t t i n y i n t 是 一 种 只 存 整 数 的 数 据 类

型 , 此 数 值 从 0 开 始 至 255。

(五 ) 近 似 值 数 字 数 据 类 型 ( A p p x o x i m a t e N u m e r i c D a t a )

近 似 值 的 数 据 类 型 有 :

fl o a t f l o a t 是 浮 点 数 数 据 类 型 。 缺 省 状 态下 为 15 位 精 度 , 正 数 范 围 从 2.2 3 E -3 0 8 开 始 至 1.7 9 E+ 30 8, 负 数 范 围 从-2. 2 3 E - 3 0 8 开 始 至 -1 . 7 9 E+ 3 0 8。

re a l 此 数 据 类 型 可 以 存 储 类 似 于 fl o a t 的正 负 浮 点 数 , 实 数 据 类 型 有 7 位 精 度 ,正 值 范 围 是 1.1 8 E - 3 8 至 3 . 4 0 E - 3 8,可 以 存 储 0 , 负 数 范 围 是 -1. 1 8 E - 3 8至 - 3 . 4 0 E+ 3 8。

(六 ) 货 币 数 据 ( M o n e t a r y D a t a )

财 政 货 币 数 据 的 数 据 类 型 有 :

mo n e y m o n e y 是 表 示 财 政 货 币 的 数 据 类 型 ,

Page 182: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

其 值 为 -922,337,20 3,68 5,477 . 5 7 0 7到 + 92 2, 33 7, 203, 68 5, 477 . 5 8 0 7,精 确 到 千 分 之 十 货 币 单 位 。

sma l l m o n e y s m a l l m o n e y 数 据 类 型 可 存 储 的 货 币 值范 围 是 -2 1 4 , 74 8 . 3 6 4 8 至 + 21 4 ,74 8 . 3 6 4 7, 精 确 到 为 千 分 之 十 货 币 单位 。 sma l l m o n e y 值 显 示 时 可 圆 整 至 2位 小 数 。

(七 ) 特 殊 数 据 ( S p e c i a l d a t a )

特 殊 数 据 类 型 有 1 位 , 其 值 为 1 或 0。 SQL S e r v e r 认 为 大 于 0 的 整 数 都 是 1。

(八 ) 游 标 ( C u r s o r )

游 标 数 据 类 型 和 游 标 变 量 一 起 使 用 , 且 只 用 于 游 标 环 境 。

(九 ) 系 统 名 称 ( S y s n a m e )

S y s n a m e 是 SQ L S e r v e r 数 据 类 型 , 它 由 SQL S e r v e r 定 义 为 nva r c h a r ( 1 2 8 )型 数 据 , 12 8 个 U n i c o d e 字 符 ,2 5 6 个 字 节 。 SQL S e r v e r 需 要 介 于 系 统 表 格 和 存储 过 程 之 间 的 共 用 数 据 类 型 , SQL S e r v e r 将 系 统 名 称 用 作 共 用 数 据 类 型 。

Page 183: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

(十 ) 时 间 戳 ( t i m e s t a m p )

时 间 戳 是 一 种 数 据 类 型 , 每 当 插 入 行 或 更 新 行 时 , SQL S e r v e r 都 会 更 新 时间 戳 。 每 个 表 格 只 限 一 个 时 间 戳 , 且 是 二 进 制 (8 )或 可 变 二 进 制 (8 )型 数 据 。

(十 一 ) 唯 一 标 识 符 ( u n i q u e i d e n t i f i e r )

唯 一 标 识 符 是 16 个 字 节 的 全 局 唯 一 全 局 标 识 符 , 也 称 GU I D。

(十 二 ) 用 户 自 定 义 的 数 据 类 型 ( u s e r - d e f i n e d )

u s e r - d e f i n e d 是 建 立 在 SQ L S e r v e r 数 据 类 型 的 基 础 上 , 用 sp_ a d d t y p e 系统 存 储 过 程 定 义 的 数 据 类 型 。

(十 三 ) 文 本 和 图 像 数 据 ( T e x t a n d I m a g e D a t a )

文 字 和 图 像 数 据 类 型 有 :te x t t e x t 是 一 种 数 据 类 型 , 最 多 可 以 保 存

2 3 1-1 或 2, 14 7, 48 3, 64 7 个 字 符 ,缺 省 长 度 为 16 , 该 缺 省 长 度 可 以 改变 。

nt e x t n t e x t 为 一 种 数 据 类 型 , 最 多 可 以 保存 2 3 0- 1 或 1, 0 7 3 , 7 4 1 , 8 2 3 个 字 符 ,

Page 184: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

其 长 度 可 变 。Im a g e I m a g e 是 一 种 数 据 类 型 , 最 多 可 以 保

存 2 31- 1 或 2, 147, 48 3, 647个 字 节 的 二 进 制 数 据 , 其 长 度 可 变 。

(十 四 ) 统 一 代 码 数 据 ( U n i c o d e D a t a )

N c h a r ( n 前 缀 是 SQ L - 9 2 统 一 代 码 标 准 ) N c h a r 是 统 一 代 码 数 据 , 最 多 可 以 保存 40 0 0 个 固 定 长 度 的 字 符 。

nv a r c h a r n v a r c h a r 是 统 一 代 码 数 据 , 最 多 可 以保 存 40 0 0 个 可 变 长 度 的 字 符 。

Nt e x t N t e x t 是 统 一 代 码 数 据 , 最 多 可 以 保存 1, 07 3, 74 1, 82 3 个 可 变 长 度 的字 符 。

D A T A L E N G T H

D A T A L E N G T H 是 系 统 函 数 , 它 返 回 任 意 数 据 类 型 表 格 式 的 长 度 。语 法D A T A L E N G T H ( e x p r e s s i o n )

Page 185: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 exp r e s s i o n 可 以 是 常 数 、 列 名 、 函 数 与 子 查 询 程 序 , 算 术 运 算 符 , 按位 运 算 符 和 串 运 算 符 。

示 例下 面 是 DAT A L E N G T H 系 统 函 数 的 示 例 :

S E L E C T D A T A L E N G T H ( C o l u m n 1 )F R O M M y T a b l eG O

本 例 中 , 返 回 的 整 数 代 表 Colu m n 1 的 长 度 ( 以 字 节 为 单 位 ), 将 DAT A L E N G T H用 于 可 变 字 符 、 可 变 二 进 制 数 、 文 本 、 图 像 、 nva r c h a r 和 n t e x t 数 据 类 型 , 可以 查 看 它 们 的 长 度 。 如 果 该 列 为 空 , 则 返 回 NU L L。 数 字 数 据 类 型 的 存 储 在 本 版本 中 有 所 不 同 , DAT A L E N G T H 对 数 值 表 达 式 返 回 5, 9, 13 或 17。

D A T E A D D

D A T E A D D 返 回 根 据 日 期 时 间 添 加 的 日 期 , 其 单 位 可 以 是 在 日 期 单 位 列 表 中 列出 的 任 一 单 位 。

语 法

D A T E A D D ( d a t e p a r t , n u m b e r , d a t e )

Page 186: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

日 期 函 数

下 表 适 用 于 提 取 dat e p a r t 参 数 的 所 有 日 期 函 数 。Date p a r t (日 期 单 位 ) Ab b r e v i a t i o n (缩 写 ) V a l u e s (值 )Y e a r Y y 1 7 5 3 - 9 9 9 9Q u a r t e r Q q 1 - 4M o n t h M m 1 - 1 2D a y - o f - y e a r D y 1 - 3 6 6D a y d d 1 - 3 1W e e k W k 1 - 5 3W e e k d a y D w 1 - 7 ( S u n . - S a t . )H o u r H h 0 - 2 3M i n u t e M i 0 - 5 9S e c o n d S s 0 - 5 9M i l l i s e c o n d M s 0 - 9 9 9

变 量d a t e p a r t d a t e p a r t 是 用 于 计 算 的 日 期 单 位 。 参 阅 日 期 函 数 下

面 的 表 格 。nu m b e r n u m b e r 是 指 添 加 至 日 期 变 量 中 的 日 期 单 位 数 。da t e d a t e 是 GET D A T E 函 数 、 格 式 化 为 日 期 的 字 符 串 、 或

日 期 时 间 型 的 列 名 、 变 量 或 参 数 。

Page 187: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 DAT E A D D 函 数 的 示 例 :

S E L E C T D A T E A D D ( d a y , 7 , D a t e C o l u m n 1 )F R O M M y T a b l eG O

本 例 中 , 将 7 天 添 加 至 Dat e C o l u m n 1 的 值 中 。

D A T E D I F F

D A T E D I F F 返 回 两 个 指 定 日 期 的 日 期 单 位 的 差 别 。语 法D A T E D I F F ( d a t e p a r t, d a t e , d a t e )变 量

d a t e p a r t d a t e p a r t 是 用 于 计 算 的 日 期 单 位 , 参 阅 日 期 函 数下 面 的 表 格 。

da t e d a t e 是 GE T D A T E 函 数 ; 格 式 化 为 日 期 的 字 符 串 、或 日 期 时 间 型 的 列 名 、 变 量 或 参 数 。

示 例下 面 为 DAT E D I F F 函 数 的 示 例 :

Page 188: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E L E C T D A T E D I F F ( d a y , D a t e C o l u m n 1 , g e t d a t e ( ) )F R O M M y t a b l e本 例 中 , 返 回 值 为 Dat e C o l u m n 1 中 的 值 和 当 前 日 期 相 差 的 天 数 。

D A T E N A M E

D A T E N A M E 返 回 日 期 单 位 的 名 称 。语 法

D A T E N A M E ( da tepa r t , da t e )

变 量

d a t e p a r t d a t e p a r t 是 指 用 于 计 算 的 日 期 单 位 , 参 阅 日 期 函 数下 面 的 表 格 。

Da t e d a t e 日 期 指 GET D A T E 函 数 , 格 式 化 为 日 期 的 字 符串 、 或 日 期 时 间 型 的 列 名 。

示 例下 面 是 DAT E N A M E 函 数 的 示 例 :

S E L E C T D A T E N A M E ( d w , g e t d a t e ( ) )

Page 189: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 如 果 今 天 是 星 期 一 , 就 返 回 单 词 “ Mon d a y” 的 字 符 数 据 。

D A T E P A R T

D A T E P A R T 返 回 的 整 数 表 示 日 期 中 的 日 期 单 位 。语 法

D A T E P A R T ( da t epa r t , da t e )

变 量

d a t e p a r t d a t e p a r t 是 指 用 于 计 算 的 日 期 单 位 , 参 阅 日 期 函 数下 面 的 表 格 。

da t e d a t e 日 期 指 GET D A T E 函 数 , 格 式 化 为 日 期 的 字 符串 、 或 日 期 时 间 型 的 列 名 。

示 例下 面 是 DAT E P A R T 函 数 的 示 例 :

S E L E C T D A T E P A R T ( m o n t h g e t d a t e ( ) )G O

Page 190: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 返 回 值 为 一 年 12 个 月 中 的 月 份 。

D A Y

D A Y 显 示 所 提 供 的 日 期 的 整 数 , 即 天 数 部 分 。语 法

D A Y ( da te )

变 量 da t e 是 sa m l l d a t e t i m e 或 d a t e t i m e 数 据 类 型 。

D B _ I D

D B _ I D 为 系 统 函 数 , 它 返 回 数 据 库 的 标 识 号 。语 法

D B _ I D ([ ′ d a t a b a s e _ n a m e′ ] )

变 量 dat a b a s e _ n a m e 是 用 户 希 望 得 到 的 数 据 库 标 识 号 的 数 据 库 名 称 , 缺 省值 为 当 前 使 用 的 数 据 库 。

示 例

Page 191: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 mas t e r 数 据 库 中 运 行 的 DB _ I D 函 数 的 示 例 :

S E L E C T D B _ 1 D (′ m a s t e r′ )

本 例 中 , 返 回 的 1 是 ma s t e r 系 统 数 据 库 的 数 据 库 标 识 号 。

D B _ N A M E

传 递 数 据 库 标 识 号 时 , DB_ N A M E 返 回 数 据 库 名 称 。语 法

D B _ N A M E ([ d a t a b a s e _ i d ] )

变 量 dat a b a s e _ i d 是 要 查 看 的 标 识 号 , 缺 省 值 为 当 前 使 用 的 数 据 库 。示 例 :下 面 是 DB_ N A M E 系 统 函 数 的 示 例 :

S E L E C T D B _ N A M E( 1)

本 例 中 , 返 回 数 据 库 标 识 号 为 1 的 数 据 库 。 数 据 库 名 称 是 ma s t e r。

Page 192: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C C H E C K A L L O C

D a t a b a s e C o n s i s t e n c y C h e c k e r 语 句 DBC C C H E C K A L L O C 检 查 数 据 库 中 所 有页 的 分 配 使 用 情 况 。

语 法

D B C C C H E C K A L L O C( ′ d a t a b a s e _ n a m e′[ , N O I N D E X |{ R E P A I R _ A L L O W _ D A T A _ L O S S| R E P A I R _ F A S T| R E P A I R _ R E B U I L D}])[ W I T H { A l l _ E R R O R M S G S| N O _ I N F O M S G S }]

变 量

′ dat a b a s e _ n a m e′ da t a b a s e _ n a m e 是 语 句 所 作 用 的 数 据 库 名 称 ,在 当 前 数 据 库 中 执 行 此 命 令 时 不 需 要

Page 193: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

d a t a b a s e _ n a m e。N O I N D E X N O I N D E X 指 用 户 定 义 的 表 格 的 非 成 簇 索 引 不 包

含 在 数 据 库 的 检 查 之 中 。REP A I R _ A L L O W _ D A T A _ L O S S R E P A I R _ A L L O W _ D A T A _ L O S S 修 理 REP A I R _ R E B U I L D

所 修 复 的 内 容 ; 它 也 修 复 分 配 错 误 和 结 构 行 或页 面 错 误 , 并 删 除 可 能 导 致 丢 失 数 据 的 坏 文 本对 象 。

REP A I R _ F A S T R E P A I R _ F A S T 进 行 少 量 而 快 速 的 修 复 操 作 , 例如 修 复 少 量 的 索 引 。 它 不 会 丢 失 数 据 。

REP A I R _ R E B U I L D R E P A I R _ R E B U I L D 进 行 RE P A I R _ F A S T 的 修 复 工作 , 更 多 的 时 间 是 在 修 理 索 引 , 它 不 会 丢 失 数据 。

WIT H N O _ I N F O M S G S |AL L _ E R R O R M S G S

W I T H N O _ I N F O M S G S 指 报 告 不 包 括 信 息 性 消 息 和占 用 的 空 间 , 只 报 告 错 误 信 息 。 WI T HA L L _ E R R O R M S G S 指 显 示 所 有 的 错 误 信 息 。

D B C C C H E C K C A T A L O G

D B C C C H E C K C A T A L O G 检 查 系 统 表 的 完 整 性 。语 法

D B C C C H E C K C A T A L O G [ ( ′ d a t a b a s e _ n a m e′ )]

Page 194: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ W I T H N O _ I N F O M S G S]变 量

′ dat a b a s e _ n a m e′ da t a b a s e _ n a m e 是 语 句 所 作 用 的 数 据 库 名 称 ,在 当 前 数 据 库 中 执 行 此 命 令 时 不 需 要dat a b a s e _ n a m e。

WI T H N O _ I N F O M S G S W I T H N O _ I N F O M S G S 表 示 报 告 不 包 括 信 息 性 消息 和 占 用 的 空 间 , 只 报 告 错 误 信 息 。

D B C C C H E C K D B

D B C C C H E C K D B 检 查 数 据 库 中 所 有 内 容 的 完 整 性 。 如 果 执 行 了 DBC C C H E C K D B,就 不 需 要 执 行 DBC C C H E C K A L L O C 或 CH E C K T A B L E。

语 法

D B C C C H E C K D B(′ d a t a b a s e _ n a m e′[ ,N O I N D E X |{ R E P A I R _ A L L O W _ D A T A _ L O S S| R E P A I R _ F A S T| R E P A I R _ R E B U I L D}

Page 195: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

])[ W I T H { A L L _ E R R O R M S G S| N O _ I N F O M S G S } ]变 量

′ dat a b a s e _ n a m e′ da t a b a s e _ n a m e 是 语 句 所 作 用 的 数 据 库 名称 , 在 当 前 数 据 库 中 执 行 此 命 令 时 不 需 要dat a b a s e _ n a m e。

N O I N D E X N O I N D E X 指 用 户 定 义 的 表 格 的 非 成 簇 索 引 不包 含 在 数 据 库 的 检 查 之 中 。

REP A I R _ A L L O W _ D A T A _ L O S S R E P A I R _ A L L O W _ D A T A _ L O S S 修 理 RE P A I R _ R E -B U I L D 所 修 复 的 内 容 ; 它 也 修 复 分 配 错 误 和结 构 行 或 页 面 错 误 , 并 删 除 可 能 导 致 丢 失 数据 的 坏 文 本 对 象 。

REP A I R _ F A S T R E P A I R _ F A S T 进 行 少 量 而 快 速 的 修 复 操 作 ,例 如 修 复 少 量 的 索 引 。 它 不 会 丢 失 数 据 。

REP A I R _ R E B U I L D R E P A I R _ R E B U I L D 进 行 RE P A I R _ F A S T 的 修 复工 作 , 更 多 的 时 间 是 在 修 理 索 引 , 它 不 会 丢失 数 据 。

WIT H N O _ I N F O M S G S |AL L _ E R R O R M S G S

W I T H N O _ I N F O M S G S 指 报 告 不 包 括 信 息 性 消息 和 占 用 的 空 间 , 只 报 告 错 误 信 息 。 WITHA L L _ E R R O R M S G S 指 显 示 所 有 的 错 误 信 息 。

Page 196: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C C H E C K F I L E G R O U P

检 查 文 件 组 中 所 有 表 格 的 分 配 情 况 。语 法

D B C C C H E C K F I L E G R O U P[ ([{ ′ f i l e g r o u p _ n a m e′ | f i l e g r o u p _ i d }][ ,N O I N D E X ] )][ W I T H N O _ I N F O M S G S| A L L _ E R R O R M S G S]

变 量

′ fil e g r o u p _ n a m e′ fi l e g r o u p _ n a m e 指 D B C C 语 句 作 用 的 文 件 组 名称 。

fil e g r o u p _ i d f i l e g r o u p _ i d 是 sy s f i l e g r o u p s 系 统 表 中 的 文件 组 的 ID。

NO I N D E X N O I N D E X 指 用 户 定 义 的 非 成 簇 索 引 不 包 括 在 数据 库 的 检 查 之 中 。

WIT H N O _ I N F O M S G S |AL L _ E R R O R M S G S

W I T H N O _ I N F O M S G S 指 报 告 不 包 括 信 息 性 消 息 和占 用 的 空 间 , 只 报 告 错 误 信 息 。 WI T HA L L _ E R R O R M S G S 显 示 所 有 的 错 误 信 息 。

Page 197: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C C H E C K I D E N T

D B C C C H E C K I D E N T 检 查 表 格 的 当 前 等 同 值 , 并 校 正 等 同 值 。语 法

D B C C C H E C K I D E N T ( ′ t a b l e _ n a m e ′[ ,{ N O R E S E E D | { R E S E E D [ , n e w _ r e s e e d _ v a l u e ]}}])

变 量

′ tab l e _ n a m e′ ta b l e _ n a m e 是 指 DBC C 语 句 作 用 的 表 格 名 称 。NO R E S E E D N O R E S E E D 通 知 SQ L S e r v e r 不 校 正 等 同 值 。RE S E E D 如 果 没 有 提 供 new _ r e s e e d _ v a l u e, RE S E E D 通 知 SQ L

S e r v e r 将 等 同 值 校 正 为 等 同 列 中 的 最 大 值 。new _ r e s e e d _ v a l u e n e w _ r e s e e d _ v a l u e 指 等 同 列 中 新 的 起 始 数 值 。

D B C C C H E C K T A B L E

D B C C C H E C K T A B L E 检 查 并 有 选 择 地 修 补 表 格 中 所 有 页 面 的 完 整 性 。语 法

Page 198: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C C H E C K T A B L E(′ t a b l e _ n a m e ′[ ,N O I N D E X | i n d e x _ i d ) |{ R E P A I R _ A L L O W _ D A T A _ L O S S | R E P A I R _ F A S T | R E P A I R _ R E B U I L D}])[ W I T H N O _ I N F O M S G S]变 量

′ tab l e _ n a m e′ ta b l e _ n a m e 指 D B C C 语 句 作 用 的 表 格 名 称 。NO I N D E X N O I N D E X 指 用 户 定 义 的 表 格 的 非 成 簇 索 引 不 包

含 在 数 据 库 的 检 查 之 中 。in d e x _ i d i n d e x _ i d 指 D B C C 语 句 作 用 的 索 引 的 ID。

REP A I R _ A L L O W _ D A T A _ L O S S R E P A I R _ A L L O W _ D A T A _ L O S S 修 理REP A I R _ R E B U I L D 所 修 复 的 内 容 ; 它 也 修 复 分配 错 误 和 结 构 行 或 页 面 错 误 , 并 删 除 可 能 导 致丢 失 数 据 的 坏 文 本 对 象 。

REP A I R _ F A S T R E P A I R _ F A S T 进 行 少 量 而 快 速 的 修 复 操 作 , 例如 修 复 少 量 的 索 引 。 它 不 会 丢 失 数 据 。

REP A I R _ R E B U I L D R E P A I R _ R E B U I L D 进 行 RE P A I R _ F A S T 的 修 复 工

Page 199: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

作 , 更 多 的 时 间 是 在 修 理 索 引 , 它 不 会 丢 失 数据 。

WIT H N O _ I N F O M S G S |AL L _ E R R O R M S G S

W I T H N O _ I N F O M S G S 意 味 着 报 表 不 含 通 知 消 息 ,使 用 空 格 。 只 报 告 错 误 消 息 。 WITHA L L _ E R R O R M S G S 显 示 所 有 错 误 消 息 。

WIT H N O _ I N F O M S G S W I T H N O _ I N F O M S G S 指 报 告 不 包 括 信 息 性 消 息和 占 用 的 空 间 , 只 报 告 错 误 信 息 。

D B C C D B R E P A I R

D B C C D B R E P A I R 只 向 后 兼 容 , 现 在 使 用 DRO P D A T A B A S E。语 法

D B C C D B R E P A I R ( d a t a b a s e _ n a m e ,D R O P D B [ ,N O I N I T ])

变 量

d a t a b a s e _ n a m e d a t a b a s e _ n a m e 是 要 删 除 的 数 据 库 名 。DR O P D B D R O P D B 指 撤 消 数 据 库 。NO I N I T N O I N I T 指 不 改 变 数 据 库 的 分 配 页 。

Page 200: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C D B R E I N D E X

D B C C D B R E I N D E X 重 建 表 格 的 索 引 , 并 可 在 不 必 撤 消 再 重 建 索 引 的 情 况 下 ,保 存 相 关 的 约 束 , 以 减 少 撤 消 和 重 建 约 束 的 辅 助 操 作 。

语 法

D B C C D B R E I N D E X ( [ ′ d a t a b a s e . o w n e r . t a b l e _ n a m e′ [ , i n d e x _ n a m e[ , f i l l f ac to r]]] )[ W I T H N O _ I N F O M S G S]

变 量

′ dat a b a s e . o w n e r . t a b l e _ n a m e′ da t a b a s e . o w n e r . t a b l e _ n a m e 是 重 建 索 引的 表 格 的 全 限 定 名 称 。

ind e x _ n a m e i n d e x _ n a m e 是 要 重 建 的 索 引 名 称 , 使 用两 个 单 引 号 可 以 通 知 SQL S e r v e r 重 建 表格 上 的 全 部 索 引 , 如 果 需 要 指 定 填 充 因子 , 就 只 需 使 用 两 个 单 引 号 ; 否 则 可 以省 略 最 后 2 个 变 量 。

fil l f a c t o r f i l l f a c t o r 表 示 每 个 索 引 叶 页 面 上 要 存储 数 据 的 空 间 百 分 比 , 只 有 建 立 了 索 引

Page 201: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

才 能 使 用 它 。 如 果 为 0, 则 使 用 初 始 填 充因 子 。

WIT H N O _ I N F O M S G S W I T H N O _ I N F O M S G S 表 示 报 告 不 包 括 信 息性 消 息 和 占 用 的 空 间 , 只 报 告 错 误 信 息 。

D B C C d l l n a m e ( F R E E )

D B C C d l l n a m e ( F R E E )将 扩 展 存 储 过 程 中 的 动 态 连 接 库 (D L L )从 内 存 中 提 取 出来 。

语 法

D B C C d l l n a m e ( F R E E )

变 量 dll n a m e 是 要 从 内 存 中 删 除 的 dl l 名 称 。

D B C C H E L P

D B C C H E L P 显 示 提 供 的 DBCC 语 句 的 语 法 信 息 。语 法

D B C C H E L P (′ d b c c _ s t a t e m e n t′ | @ d b c c _ s t a t e m e n t _ v a r| ′ ?′ )

Page 202: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

d b c c _ s t a t e m e n t |@ d b c c _ s t a t e m e n t _ v a r

D B C C 语 句 为 DB C C 语 句 或 DBCC 后 面 部 分 的 名称 (例 如 , CHE C K T A B L E)

? ?显 示 带 帮 助 信 息 的 DB C C 语 句 。

D B C C I N P U T B U F F E R

D B C C I N P U T B U F F E R 显 示 从 客 户 机 发 送 至 SQL S e r v e r 的 最 后 一 个 Tra n s a c t -S Q L 语 句 。

语 法

D B C C   IN P U T B U F F E R ( s p i d )

变 量 spid 是 用 于 用 户 连 接 的 系 统 进 程 ID。 (通 过 执 行 系 统 存 储 过 程 sp_ w h o可 以 选 择 spi d )

D B C C M E M U S A G E

D B C C M E M U S A G E 显 示 8K 页 中 关 于 内 存 使 用 情 况 的 缓 冲 器 和 程 序 高 速 缓 存 的信 息 。

Page 203: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

D B C C M E M U S A G E ([ ′ B U F F E R ′ ] [ ,] [ ′ P R O C E D U R E′ ] )变 量

′ BU F F E R′ B U F F E R 指 显 示 缓 冲 器 高 速 缓 存 信 息 。′ PRO C E D U R E′ P R O C E D U R E 指 显 示 程 序 高 速 缓 存 信 息 。

D B C C N E W A L L O C

D B C C N E W A L L O C 检 查 数 据 库 的 每 个 表 格 中 数 据 与 索 引 页 面 的 分 配 ; 然 而 , 与DBC C C H E C K A L L O C 相 同 , DBC C N E W A L L O C 只 是 为 了 向 后 兼 容 。 可 以 用 DB C CC H E C K A L L O C 代 替 它 。

语 法

D B C C N E W A L L O C [ ( ′ d a t a b a s e _ n a m e′ [ , N O I N D E X ] )][ W I T H N O _ I N F O M S G S]

变 量

′ dat a b a s e _ n a m e′ da t a b a s e _ n a m e 是 语 句 所 作 用 的 数 据 库 名 称 ,在 当 前 数 据 库 中 执 行 此 命 令 时 不 需 要dat a b a s e _ n a m e。

Page 204: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N O I N D E X N O I N D E X 指 用 户 定 义 的 表 格 的 非 成 簇 索 引 不包 含 在 数 据 库 的 检 查 之 中 。

WIT H N O _ I N F O M S G S W I T H N O _ I N F O M S G S 指 报 告 不 包 括 信 息 性 消 息和 占 用 的 空 间 , 只 报 告 错 误 信 息 。

D B C C O P E N T R A N

D B C C O P E N T R A N 显 示 数 据 库 中 最 旧 的 活 动 信 息 以 及 分 布 式 和 非 分 布 式 复 制 事务 处 理 信 息 。 打 开 的 事 务 处 理 可 以 由 sp i d 标 识 并 可 终 止 。

语 法

D B C C O P E N T R A N [ (′ d a t a b a s e _ n a m e′ | d a t a b a s e _ i d )][ W I T H T A B L E R E S U L T S[ ,N O _ I N F O M S G S ]]

变 量

′ dat a b a s e _ n a m e′ da t a b a s e _ n a m e 是 D B C C 语 句 作 用 的 数 据 库 名 称 。dat a b a s e _ i d d a t a b a s e _ i d 是 数 据 库 标 识 号 。WIT H T A B L E R E S U L T S W I T H T A B L E R E S U L T S 将 结 果 以 能 放 进 表 格 的 格 式

存 放 。WIT H N O _ I N F O M S G S W I T H N O _ I N F O M S G S 指 报 告 不 包 括 信 息 性 消 息 和 占

用 的 空 间 , 只 报 告 错 误 信 息 。

Page 205: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C O U T P U T B U F F E R

D B C C O U T P U T B U F F E R 显 示 spi d 中 输 出 缓 冲 区 的 内 容 。语 法

D B C C O U T P U T B U F F E R ( spid )

变 量 sp i d 是 用 于 用 户 连 接 的 系 统 过 程 ID。

D B C C P E R F M O N

D B C C P E R F M O N 显 示 三 种 SQ L S e r v e r 性 能 信 息 , 即 IOS T A T S, LR U S T A T S 和NE T S T A T S。

语 法

D B C C P E R F M O N

Page 206: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C P I N T A B L E

D B C C P I N T A B L E 为 表 格 定 位 ,即 表 格 页 面 在 内 存 中 保 存 和 修 改 ,当 SQ L S e r v e r需 要 空 间 读 取 新 页 面 上 的 数 据 时 , 不 刷 新 表 格 。 对 于 常 用 的 小 表 格 , 最 好 限 制使 用 DBC C P I N T A B L E。

语 法

D B C C P I N T A B L E ( d a t a b a s e _ i d , t a b l e _ i d )

变 量

d a t a b a s e _ i d d a t a b a s e _ i d 是 定 位 表 格 的 数 据 库 标 识 号 。ta b l e _ i d t a b l e _ i d 是 要 定 位 的 表 格 的 标 识 符 。

D B C C P R O C C A C H E

D B C C P R O C C A C H E 可 由 Mi c r o s o f t S Q L S e r v e r P e r f o r m a n c e M o n i t o r 用 来 监控 程 序 高 速 缓 存 。

语 法

D B C C P R O C C A C H E

Page 207: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C R O W L O C K

在 Mic r o s o f t S Q L S e r v e r 6 . 5 中 , DB C C R O W L O C K 激 活 表 格 中 的 Ins e r t R o wL o c k i n g ( I R L ), 并 且 支 持 它 只 为 向 后 兼 容 。 在 版 本 7.0 中 , 使 用 DB C C R O W L O C K不 进 行 任 何 操 作 。 Mic r o s o f t S Q L S e r v e r 7 . 0 有 动 态 行 级 锁 定 。

D B C C S H O W C O N T I G

D B C C S H O W C O N T I G 显 示 表 格 中 数 据 和 索 引 的 存 储 碎 片 , 不 使 用 SOR T E D _ D A T A选 项 就 撤 消 并 重 建 成 簇 索 引 可 以 减 少 存 储 碎 片 。

语 法

D B C C S H O W C O N T I G ( tab le_ id [ , i n d e x _ i d ] )

变 量

t a b l e _ i d t a b l e _ i d 指 DBC C 语 句 作 用 的 表 格 的 OBJ E C T _ I D, 如 果没 有 提 供 tab l e _ i d, D B C C 语 句 将 作 用 于 所 有 的 表 格 。

in d e x _ i d i n d e x _ i d 是 DBC C 语 句 作 用 的 索 引 in d i d, 如 果 不 提 供in d e x _ i d, D B C C 语 句 将 作 用 于 表 格 中 所 有 的 索 引 。

Page 208: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D B C C S H O W _ S T A T I S T I C S

D B C C S H O W _ S T A T I S T I C S 显 示 表 格 中 索 引 或 列 的 分 布 式 页 面 统 计 信 息 。 分 布密 度 越 高 , 选 择 性 就 越 低 (因 而 索 引 的 作 用 就 越 小 )。 如 果 想 知 道 统 计 信 息 最 后一 次 更 新 的 时 间 , 可 使 用 系 统 函 数 STA T S _ D A T E。

语 法

D B C C S H O W _ S T A T I S T I C S ( t ab l e , t a rge t )

变 量

t a b l e t a b l e 是 要 查 看 统 计 信 息 的 表 格 名 称 。ta r g e t t a r g e t 是 索 引 名 称 或 列 名 称 。

D B C C S H R I N K D A T A B A S E

D B C C S H R I N K D A T A B A S E 压 缩 数 据 库 中 的 数 据 文 件 。语 法

D B C C S H R I N K D A T A B A S E( d a t a b a s e _ n a m e[ , t a r g e t _ p e r c e n t]

Page 209: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ ,{ N O T R U N C A T E| T R U N C A T E O N L Y }])

变 量

d a t a b a s e _ n a m e d a t a b a s e _ n a m e 指 要 压 缩 的 数 据 库 名 称 。tar g e t _ p e r c e n t t a r g e t _ p e r c e n t 指 压 缩 后 要 保 留 在 数 据 库 文 件 中

的 自 由 空 间 的 百 分 比 。NOT R U N C A T E N O T R U N C A T E 表 示 自 由 文 件 空 间 应 保 留 在 数 据 文 件

中 , 缺 省 是 将 空 间 释 放 到 操 作 系 统 中 。TRU N C A T E O N L Y T R U N C A T E O N L Y 指 将 数 据 文 件 中 没 有使 用 的 空 间 释 放 到 操 作 系 统 中 。 不 必 将 行 移 到 未分 配 的 页 中 , 并 忽 略 Tar g e t _ p e r c e n t。

D B C C S H R I N K F I L E

D B C C S H R I N K F I L E 压 缩 数 据 库 的 数 据 文 件 。语 法D B C C S H R I N K F I L E({ f i l e_name | f i l e_ id }[ , t a rge t_s i ze][ ,{ E M P T Y F I L E| N O T R U N C A T E | T R U N C A T E O N L Y }])

Page 210: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

f i l e _ n a m e f i l e _ n a m e 是 要 压 缩 的 数 据 库 文 件 的 逻 辑 名 称 。fi l e _ i d f i l e _ i d 是 指 sy s f i l e s 系 统 表 中 要 压 缩 的 数 据 库 文

件 的 FI L E _ I D。ta r g e t _ s i z e t a r g e t _ s i z e 是 指 压 缩 后 数 据 文 件 的 大 小 , 以 兆 字

节 为 单 位 。 如 果 不 给 出 tar g e t _ s i z e, 将 尽 量 压 缩文 件 。

EM P T Y F I L E E M P T Y F I L E 将 数 据 从 一 个 文 件 移 至 同 一 文 件 组 中 的另 一 个 文 件 中 , 然 后 , 就 可 用 ALT E R D A T A B A S E 语句 将 文 件 删 除 。

NOT R U N C A T E N O T R U N C A T E 表 示 自 由 的 文 件 空 间 应 保 留 在 数 据 库 文件 中 , 缺 省 是 将 空 间 释 放 到 操 作 系 统 中 。

TRU N C A T E O N T Y T R U N C A T E O N T Y 指 将 数 据 库 文 件 中 未 使 用 的 空 间 都 释放 到 操 作 系 统 中 。 不 将 行 移 至 未 分 配 的 页 面 上 , 并忽 略 tar g e t _ s i z e。

D B C C T E X T A L L

D B C C T E X T A L L 在 带 有 文 本 、 nt e x t 或 图 像 列 的 表 格 中 执 行 TEX T A L L O C 。Mi c r o s o f t S e r v e r 7 . 0 包 括 此 函 数 , 只 是 为 了 向 后 兼 容 。 可 以 用 DB C C C H E C K D B

Page 211: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

代 替 DBC C T E X T A L L。语 法

D B C C T E X T A L L ([ ′ d a t a b a s e _ n a m e′ | d a t a b a s e _ i d ] [ ,′ F u l l′ |′ FA S T ′ ])

D B C C S Q L P E R F

D B C C S Q L P E R F 显 示 所 有 数 据 库 中 使 用 事 务 处 理 记 录 空 间 的 统 计 信 息 。语 法

D B C C S Q L P E R F ( L O G S P A C E )

D B C C T E X T A L L

D B C C T E X T A L L 在 数 据 库 中 带 有 文 本 、 nte x t 或 图 像 列 的 表 格 中 运 行 DB C CT E X T A L L O C。 此 函 数 包 含 在 Mic r o s o f t S e r v e r 7 . 0 中 , 只 是 为 了 向 后 兼 容 。 可以 用 DBC C C H E C K T A B L E 代 替 DB C C T E X T A L L。

Page 212: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法D B C C T E X T A L L

D B C C T E X T A L L O C

D B C C T E X T A L L O C 检 查 有 文 本 、 ne x t 或 图 像 列 的 表 。 在 Mic r o s o f t S Q L S e r v e r7 . 0 中 包 含 它 是 为 了 向 后 兼 容 。 利 用 DBC C C H E C K T A B L E 代 替 它 。

语 法

D B C C T E X T A L L O C ( { t a b l e _ n a m e | t a b l e _ i d }[ ,′ F U L L ′ | ′FA S T ′ ] )

D B C C T R A C E O F F

D B C C T R A C E O F F 从 作 用 的 SQL S e r v e r 中 删 去 跟 踪 标 记 。语 法

D B C C T R A C E O F F ( t r ace#[ ,⋯ t r ace#] )

变 量

Page 213: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

t r a c e # t r a c e #是 追 踪 标 志 号 。

D B C C T R A C E O N

D B C C T R A C E O N 可 打 开 作 用 于 SQL S e r v e r 的 跟 踪 标 记 。语 法

D B C C T R A C E O N ( t r ace#[ ,⋯ t r a c e #] )

变 量t r a c e # t r a c e #是 追 踪 标 志 号 。

D B C C T R A C E S T A T U S

D B C C T R A C E S T A T U S 显 示 跟 踪 标 记 的 状 态 。 如 果 打 开 跟 踪 标 记 , SQL S e r v e r就 返 回 1, 关 闭 追 踪 标 记 , 就 返 回 0。 使 用 值 为 -1 的 tr a c e #查 看 参 阅 作 用 于 服务 器 的 所 有 跟 踪 标 记 。

语 法

D B C C T R A C E S T A T U S ( t r a c e #[ , ⋯ t r a c e #] )

Page 214: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

t r a c e #t r a c e #是 追 踪 标 志 号 。

D B C C U N P I N T A B L E

D B C C U N P I N T A B L E 可 从 缓 冲 区 高 速 缓 存 中 取 消 表 格 页 。语 法

D B C C U N P I N T A B L E ( d a t a b a s e _ i d , t a b l e _ i d )

变 量

d a t a b a s e _ i d d a t a b a s e _ i d 是 包 含 要 取 消 的 表 格 的 数 据 库 标 识 号 。ta b l e _ i d t a b l e _ i d 是 要 取 消 的 表 格 的 OBJ E C T _ I D。

D B C C U P D A T E U S A G E

D B C C U P D A T E U S A G E 修 改 sy s i n d e x e s 系 统 表 并 删 除 任 何 可 能 导 致 在sp_ s p a c e u s e d 系 统 存 储 程 序 中 出 现 不 准 确 报 表 的 旧 统 计 资 料 。

Page 215: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

D B C C U P D A T E U S A G E ({ ′ d a t a b a s e _ n a m e′ | 0}[ , ′ t a b l e _ n a m e′[ , i ndex_ id ]] )[ W I T H [ N O _ I N F O M S G S] [[ ,] C O U N T _ R O W S]变 量

′ dat a b a s e _ n a m e′ |0 d a t a b a s e _ n a m e 是 D B C C 语 句 作 用 的 数 据 库 , 如果 此 变 量 为 0, DB C C 语 句 就 作 用 于 当 前 数 据 库 。

′ tab l e _ n a m e′ ta b l e _ n a m e 是 D B C C 语 句 作 用 的 表 格 。in d e x _ i d i n d e x _ i d 是 DBCC 语 句 作 用 的 索 引 in d i d, 缺 省

为 表 格 中 的 所 有 索 引 。WIT H N O _ I N F O M S G S W I T H N O _ I N F O M S G S 指 报 表 不 包 括 信 息 性 消 息 和

占 用 的 空 间 , 只 报 告 错 误 信 息 。WIT H C O U N T _ R O W S W I T H C O U N T _ R O W S 用 表 格 中 的 当 前 行 数 更 新

sys i n d e x e s 系 统 表 中 的 行 列 , 如 果 表 格 较 大 ,需 要 的 时 间 将 较 长 。

示 例下 面 是 DBC C U P D A T E U S A G E 语 句 的 示 例 。

D B C C U P D A T E U S A G E ( 0 )

Page 216: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

G O

本 例 中 , 对 当 前 数 据 库 中 所 有 表 格 与 所 有 索 引 , sys i n d e x e s 表 都 进 行 了 更新 。

D B C C U S E R O P T I O N S

D B C C U S E R O P T I O N S 显 示 用 于 当 前 连 接 的 活 动 SE T 选 项 。语 法

D B C C U S E R O P T I O N S

D E A L L O C A T E

D E A L L O C A T E 是 一 个 语 句 , 用 于 通 过 名 称 或 变 量 名 删 除 对 游 标 的 引 用 。 删 除最 后 一 次 对 游 标 的 引 用 后 , 数 据 结 构 和 锁 定 就 恢 复 自 由 。

语 法

D E A L L O C A T E {{[ G L O B A L] c u r s o r _ n a m e} | c u r s o r _ v a r i a b l e _ n a m e}

Page 217: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

c u r s o r _ n a m e 已 声 明 了 cur s o r _ n a m e, 它 是 一 个 局 部 变 量 ,除 非 指 定 为 GL O B A L, 或 者 不 存 在 使 用 该 名 称 的局 部 游 标 。

cur s o r _ v a r i a b l e _ n a m e c u r s o r _ v a r i a b l e _ n a m e 是 游 标 变 量 名 。

十 进 制 数 据 类 型

十 进 制 数 据 类 型 是 精 确 数 值 , 精 确 到 数 的 最 小 单 位 , 另 一 种 精 确 数 值 数 据类 型 为 数 值 。 两 者 的 值 域 都 是 从 10 3 8- 1 到 -10 3 8- 1。

d e c i m a l[ ( p[ ,s] )] a n d n u m e r i c[ ( p[ , s] )]

变 量

p r e c i s i o n p r e c i s i o n ( p) 指 小 数 点 两 边 存 储 的 小 数 位 数 的最 大 值 。

sc a l e s c a l e 指 小 数 点 右 边 小 数 位 数 的 最 大 值 , 其 值 为从 0 到 任 意 精 度 变 量 的 值 。

Page 218: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D E C L A R E @ l o c a l _ v a r i a b l e

变 量 可 用 DE C L A R E 语 句 在 批 注 、存 储 过 程 或 触 发 器 中 声 明 。可 用 SET 或 SE L E C T语 句 给 变 量 赋 值 , 所 有 声 明 的 局 部 变 量 都 初 始 化 为 NULL。

语 法

D E C L A R E{{ @ l o c a l _ v a r i a b l e d a t a _ t y p e}| { c u r s o r _ v a r i a b l e _ n a m e C U R S O R} }[ , . . .n]变 量

@ l o c a l _ v a r i a b l e @符 号 放 在 局 部 变 量 名 的 开 头 是 SQ L S e r v e r 识 别局 部 变 量 的 方 式 。 Tra n s a c t S Q L 语 句 中 的 变 量 不能 用 作 数 据 库 对 象 , 只 能 用 作 常 量 。 如 果 不 存 在使 用 该 名 称 的 局 部 变 量 , 在 程 序 、 触 发 器 或 批 注中 变 量 就 是 局 部 变 量 。

da t a _ t y p e d a t a _ t y p e 是 系 统 或 用 户 定 义 的 数 据 类 型 , 但 不 是图 像 、 文 字 或 nte x t 数 据 类 型 。

cur s o r _ v a r i a b l e _ n a m e c u r s o r _ v a r i a b l e _ n a m e 是 游 标 变 量 的 名 称 , 其 规

Page 219: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

范 与 局 部 变 量 相 同 , 但 不 以 @开 始 。CU R S O R C U R S O R 表 示 变 量 为 局 部 游 标 变 量 。N N 指 前 面 的 句 法 可 以 重 复 。SET | S E L E C T S E T | S E L E C T 将 表 达 式 中 的 值 赋 给 变 量 。Exp r e s s i o n 表 达 式 可 以 是 列 名 、 常 量 、 函 数 、 变 量 、 子 查 询

程 序 , 多 个 常 量 和 函 数 , 算 术 运 算 符 、 按 位 运 算符 和 字 符 串 运 算 符 。

D E C L A R E C U R S O R

D E C L A R E C U R S O R 声 明 Tr a n s a e t - S Q L 游 标 的 属 性 。语 法

D E C L A R E c u r s o r _ n a m e [ I N S E N S I T I V E] [ S C R O L L] C U R S O RF O R s e l e c t _ s t a t e m e n t[ F O R { R E A D O N L Y | U P D A T E [ O F c o l u m n _ l i s t ] }]

D E C L A R E c u r s o r _ n a m e C U R S O R[ L O C A L | G L O B A L][ F O R W A R D _ O N L Y | S C R O L L ]

Page 220: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ S T A T I C | K E Y S E T | D Y N A M I C ][ R E A D _ O N L Y | S C R O L L _ L O C K S | O P T I M I S T I C ]F O R s e l e c t _ s t a t e m e n t[ F O R { R E A D O N LY | U P D A T E [ O F c o l u m n _ l i s t ] } ]

变 量c u r s o r _ n a m e 用 标 识 符 规 则 声 明 的 游 标 名 称 。INS E N S I T I V E I N S E N S I T I V E 声 明 一 游 标 , 该 游 标 复 制 数 据 , 当 提

取 语 句 从 游 标 中 读 取 行 时 , 不 显 示 对 基 行 的 修 改 。游 标 不 能 更 新 。

SC R O L L S C R O L L 表 示 可 以 用 第 一 个 、 最 后 一 个 、 上 一 个 、 下一 个 、 相 关 和 绝 对 提 取 命 令 滚 动 游 标 。

sel e c t _ s t a t e m e n t s e l e c t _ s t a t e m e n t 是 个 SE L E C T 语 句 , 它 决 定 游 标的 结 果 集 。 不 允 许 使 用 COM P U T E, CO M P U T E B Y, F O RB R O W S E 和 I N T O。

RE A D _ O N L Y R E A D _ O N L Y 指 不 允 许 更 新 的 只 读 游 标 。UP D A T E[ OF c o l u m n _ l i s t]

U P D A T E[ OF c o l u m n _ l i s t] 决 定 游 标 可 更 新 的 列 ,如 果 没 有 清 单 , 所 有 的 列 都 可 以 更 新 。

LO C A L L O C A L 表 示 游 标 的 作 用 域 对 于 它 在 其 中 声 明 的 批注 、 存 储 过 程 或 触 发 器 而 言 是 局 部 的 。

GL O B A L G L O B A L 表 示 游 标 的 作 用 域 对 于 连 接 是 全 局 的 。FOR W A R D O N L Y F O R W A R D O N L Y 指 游 标 能 向 前 滚 , 从 第 一 行 滚 动 到 最

Page 221: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

后 一 行 。ST A T I C S T A T I C 声 明 一 游 标 , 该 游 标 复 制 数 据 , 当 提 取 语 句

从 游 标 中 读 取 行 时 , 不 显 示 对 基 行 的 修 改 。 游 标 不能 更 新 。

KE Y S E T K E Y S E T 指 打 开 游 标 时 , 设 置 行 的 成 员 和 顺 序 。 当 拥有 者 滚 动 游 标 时 , 可 以 看 到 表 格 的 变 化 。 看 不 到 其他 用 户 进 行 的 插 入 ; 可 是 , 如 果 删 去 一 行 , 全 局 变量 @@f e t c h _ s t a t u s 为 - 2。 更 新 就 相 当 于 删 除 和 插入 。

DY N A M I C 当 滚 动 游 标 时 , DYNA M I C 游 标 可 以 了 解 其 结 果 集 中对 行 所 作 的 所 有 数 据 改 动 。 每 次 读 取 时 不 使 用 绝 对和 相 对 的 读 取 选 项 , 也 可 以 修 改 行 。

SCR O L L _ L O C K S S C R O L L _ L O C K S 指 通 过 游 标 进 行 的 更 新 和 删 除 肯 定 成功 。 SQ L S e r v e r 锁 定 行 。

OPT I M I S T I C O P T I M I S T I C 表 示 如 果 行 读 入 游 标 后 进 行 过 更 新 , 通过 游 标 进 行 的 修 改 就 不 会 成 功 。

D E G R E E S

D E G R E E S 为 所 提 供 的 角 度 的 弧 度 值 给 出 了 一 个 数 值 表 达 式 ( 以 度 数 表 示 )。语 法

Page 222: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D E G R E E S ( n u m e r i c _ e x p r e s s i o n )

变 量 num e r i c _ e x p r e s s i o n 是 一 表 达 式 , 它 可 以 使 用 小 数 、 浮 点 数 、 整 型 数 、微 短 整 数 、 货 币 、 数 值 、 实 数 、 短 整 型 数 或 小 货 币 数 据 类 型 。

D E L E T E

D E L E T E 语 句 从 表 格 中 删 去 行 。语 法

D E L E T E [ F R O M { t a b l e _ n a m e | v i e w _ n a m e }[ < f r o m _ c l a u s e > : : =F R O M{ < t a b l e _ o r _ v i e w .| ( s e l e c t _ s t a t e m e n t ) [ A S] a l i a s| < t a b l e _ o r _ v i e w > C R O S S J O I N < t a b l e _ o r _ v i e w >| < t a b l e _ o r _ v i e w >[ { I N N E R | { L E F T | R I G H T | F U L L } [ O U T E R ] }][ < j o i n _ h i n t > ] J O I N< t a b l e _ o r _ v i e w > O N s e a r c h _ c o n d i t i o n s}[ , . . .n]]

Page 223: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ W H E R E { s e a r c h _ c o n d i t i o n s } |{ C U R R E N T O F { { [ G L O B A L ] c u r s o r _ n a m e } | c u r s o r _ v a r i a b l e _ n a m e

} }][ O P T I O N ( < q u e r y _ h i n t > [ ,...n] )]

< t a b l e _ o r _ v i e w > : : ={ t ab le [[ A S ] a l i a s ] [ < t a b l e _ h i n t > ]| v i e w [[ A S ] a l i a s ] }| O p e n R o w s e t ( ′ p r o v i d e r _ n a m e ′ , { ′ d a t a s o u r c e ′ ; ′ u s e r _ i d ′ ; ′p a s s w o r d ′ |

′ p r o v i d e r _ s t r i n g′ } ,{[ c a t a l o g .][ s c h e m a .] o b j e c t _ n a m e | ′ q u e r y′ } )| O p e n Q u e r y ( l i n k e d _ s e r v e r ,′ q u e r y′ )}

< t a b l e _ h i n t > : : =([ I N D E X = { i n d e x _ n a m e | i n d e x _ i d }[ , . . .n] ] [ FA S T F I R S T R O W ][ H O L D L O C K [ N O L O C K ] [ PA G L O C K ] [ R E A D C O M M I T T E D ][ R E A D P A S T ] [ R E A D U N C O M M I T T E D ] [ R E P E A T A B L E R E A D ][ R O W L O C K ] [ S E R I A L I Z A B L E ] [ T A B L O C K ] [ T A B L O C K X ][ U P D L O C K ] )< j o i n _ h i n t > : : ={ L O O P | H A S H | M E R G E }

Page 224: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< q u e r y _ h i n t > : : ={ { H A S H | O R D E R } G R O U P| {M E R G E | H A S H | C O N C A T } U N I O N| FA S T n| F O R C E O R D E R| R O B U S T P L A N}

变 量F R O M F R O M 指 从 中 删 去 行 的 表 格 或 视 图 。tab l e _ n a m e | v i e w _ n a m e t a b l e _ n a m e | v i e w _ n a m e 是 从 中 删 去 行 的 表 格 或

视 图Al i a s A l i a s 是 表 格 或 视 图 的 别 名 。CROS S J O I N C R O S S J O I N 是 两 表 格 的 交 叉 积 。<jo i n _ l i n t > < j o i n _ l i n t >通 知 查 询 优 化 程 序 在 查 询 的 FR O M

子 句 中 , 每 个 连 接 都 要 使 用 一 个 joi n _ h i n t。L O O P| HASH| ME R G E L O O P| HASH | ME R G E 决 定 查 询 中 的 连 接 使 用 循

环 、 散 列 或 合 并 。JO I N J O I N 表 明 在 DE L E T E 操 作 中 使 用 了 SQL - 9 2 联

接 。ON s e a r c h _ c o n d i t i o n s O N s e a r c h _ c o n d i t i o n s 是 连 接 的 条 件 。N N 指 前 面 的 项 可 以 重 复 。

Page 225: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

W H E R E W H E R E 决 定 筛 选 出 要 删 去 的 行 的 条 件 。Sea r c h _ c o n d i t i o n s S e a r c h _ c o n d i t i o n s 是 要 删 去 的 行 的 约 束 条

件 。CURR E N T O F C U R R E N T O F 指 从 游 标 的 当 前 位 置 上 DE L E T E。G L O B A L G L O B A L 表 示 游 标 是 全 局 游 标 。cur s o r _ n a m e c u r s o r _ n a m e 是 要 提 取 的 打 开 的 游 标 名 称 。cur s o r _ v a r i a b l e _ n a m e c u r s o r _ v a r i a b l e _ n a m e 是 游 标 变 量 的 名 称 。Ope n R o w s e t O p e n R o w s e t 有 要 访 问 数 据 源 中 的 远 程 数 据 的 所

有 联 接 信 息 。Op e n Q u e r y O p e n Q u e r y 执 行 通 过 查 询 。<ta b l e _ h i n t > < t a b l e _ h i n t >是 表 格 扫 描 , 由 优 化 程 序 或 锁 定

方 式 采 用 的 索 引 。IND E X = i n d e x _ n a m e |in d e x _ i d

要 使 用 的 IN D E X 名 称 。

OPT I O N ( < q u e r y _ h i n t > ,[ ,⋯ n] )

O P T I O N 表 示 伴 随 优 化 程 序 提 示 。

{ HA S H| OR D E R} G R O U P { H A S H| OR D E R} G R O U P 指 查 询 中 GRO U P B Y 或C O M P U T E 子 句 指 定 的 集 合 要 使 用 散 列 或 排 序 。

{ MER G E | HA S H| CONC A T }UN I O N

{ M E R G E| H A S H| CO N C A T} U N I O N 指 UN I O N 操 作需 通 过 合 并 、 散 聚 或 联 接 UNI O N 集 来 执 行 。

FAST F A S T 指 查 询 程 序 可 以 快 速 检 索 前 n 行 , 并 返 回整 个 结 果 集 。

Page 226: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N N 指 要 检 索 的 行 号 。FOR C E O R D E R F O R C E O R D E R 指 查 询 优 化 期 间 查 询 语 法 的 联 结

顺 序 相 同 。ROB U S T P L A N R O B U S T P L A N 表 示 查 询 计 划 争 取 行 的 最 大 可 能

容 量 。

D E N Y

D E N Y 是 一 个 语 句 , 它 不 仅 用 于 否 定 安 全 帐 户 的 许 可 , 还 阻 止 从 其 他 组 或 角色 成 员 中 继 承 许 可 。在 冲 突 的 情 况 下 ,最 严 格 的 许 可 应 用 该 语 句 ,也 可 和 pu b l i c角 色 和 guest 用 户 一 起 使 用 DE N Y。从 安 全 帐 户 中 删 除 否 定 许 可 ,必 须 使 用 RE V O K E语 句 。

语 法

D E N Y { A L L | s t a t e m e n t[ ,⋯ n]}T O s e c u r i t y _ a c c o u n t[ , ⋯ n]

变 量

A L L A L L 指 否 定 所 有 的 许 可 。st a t e m e n t s t a t e m e n t 指 许 可 被 否 定 的 语 句 , DE N Y 可 以 否

Page 227: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

定 用 户 的 下 列 语 句 : CRE A T E D A T A B A S E, CR E A T ED E F A U L T , CR E A T E P R O C E D U R E , CR E A T E R U L E ,CR E A T E T A B L E, CR E A T E V I E W, B A C K U P D A T A B A S E,BA C K U P T R A N S A C T I O N 和 BA C K U P T A B L E。

T O T O 指 下 个 词 为 安 全 帐 户 。sec u r i t y _ a c c o u n t 安 全 帐 户 可 以 是 SQL S e r v e r 用 户 、 SQL S e r v e r

角 色 、 Win d o w s N T 用 户 或 Win d o w s N T 组 。PRI V I L E G E S 与 SQ L - 9 2 兼 容 的 可 选 关 键 词 。per m i s s i o n p e r m i s s i o n 指 表 格 或 视 图 的 否 定 语 句 许 可 。 许

可 列 表 如 下 :SE L E C T,I N S E R T,DELE T E 和 U P D A T E,还 有 表 格 的 REF E R E N C E S。 用 于 列 的 许 可 列 表 有 :SE L E C T 和 U P D A T E , 用 于 存 储 过 程 的 许 可 是EX E C U T E。

n n 指 前 面 的 项 可 以 重 复 。co l u m n c o l u m n 指 许 可 被 否 定 的 列 名 。Ta b l e T a b l e 指 许 可 被 否 定 的 表 格 。vi e w v i e w 指 许 可 被 否 定 的 视 图 。pr o c e d u r e p r o c e d u r e 指 许 可 被 否 定 的 存 储 过 程 。ext e n d e d _ p r o c e d u r e e x t e n d e d _ p r o c e d u r e 指 许 可 被 否 定 的 扩 展 存 储

过 程 名 称 。CA S C A D E C A S C A D E 表 示 否 定 安 全 帐 户 的 许 可 , 以 及 由 该 安

全 帐 户 授 予 的 其 他 安 全 帐 户 的 许 可 。 如 果 不 使

Page 228: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

用 CAS C A D E, 但 授 予 用 户 WIT H G R A N T O P T I O N 许可 , 就 可 能 发 生 错 误 。

示 例下 面 是 DENY 语 句 的 示 例 :

D E N Y I N S E R T , U P D A T E, D E L E T EO N M y T a b l e 。T O S e c A c c t 1 , S e c A c c t 2 , S e c A c c t s 。

本 例 中 , 否 定 MyTa b l e 中 安 全 帐 户 的 许 可 。

D I F F E R E N C E

D I F F E R E N C E 通 过 SO U N D E X 函 数 显 示 两 个 字 符 表 达 式 间 的 差 别 。语 法

D I F F E R E N C E ( c h a r a c t e r _ e x p r e s s i o n , c h a r a c t e r _ e x p r e s s i o n )

变 量

c h a r a c t e r _ e x p r e s s i o n 字 符 表 达 式 可 以 是 字 符 或 可 变 字 符 数 据 类 型 ,

Page 229: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

也 可 以 常 量 、 变 量 或 列 。

示 例下 面 是 DIF F E R E N C E 函 数 的 示 例 :

D I F F E R E N C E (′ m a r r y′ ,′ m a r y′ )

本 例 中 , 差 别 不 可 能 是 4, 而 可 能 是 0。

D R O P D A T A B A S E

D R O P D A T A B A S E 实 际 删 去 数 据 库 。语 法

D R O P D A T A B A S E d a t a b a s e _ n a m e[ , ⋯ n]

变 量

d a t a b a s e _ n a m e d a t a b a s e _ n a m e 指 要 删 除 的 数 据 库 。n n 指 前 面 的 项 可 以 重 复 。

示 例

Page 230: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 DROP D A T A B A S E 语 句 的 示 例 。

D R O P D A T A B A S E p u b s , m y d b在 本 例 中 , pu b s 和 my d b 数 据 库 被 删 除 。

D R O P D E F A U L T

D R O P D E F A U L T 是 一 个 语 句 , 它 删 除 用 户 建 立 的 DE F A U L T 对 象 , 但 不 删 除DEF A U L Y C O N S T R A I N T。 要 删 除 DEF A U L T C O N S T R A I N T, 必 须 使 用 ALT E R T A B L E。

语 法

D R O P D E F A U L T d e f a u l t[ , ⋯ n]

变 量

d e f a u l t d e f a u l t 指 要 删 除 的 缺 省 值 。n n 指 前 面 的 项 可 以 重 复 。

示 例下 面 是 DRO P D E F A U L T 语 句 的 示 例 :

D R O P D E F A U L T u s r d e f d f l t

Page 231: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 删 去 了 用 户 定 义 的 缺 省 值 。

D R O P I N D E X

D R O P I N D E X 是 一 个 语 句 , 它 删 除 IN D E X, 但 不 删 除 PRI M A R Y K E Y 或 UN I Q U E约 束 建 立 的 索 引 。

语 法

D R O P I N D E X { ′ t a b l e . i n d e x′ } [ , ⋯ n]

变 量

t a b l e t a b l e 指 索 引 列 的 位 置 。in d e x i n d e x 指 要 删 除 的 索 引 。n n 指 前 面 的 项 可 以 重 复 。

示 例下 面 是 DRO P I N D E X 语 句 的 示 例 。

D R O P I N D E X ′ M y T a b l e . i d x 1′

Page 232: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 删 除 MyTa b l e 中 的 索 引 id x 1。

D R O P P R O C E D U R E

D R O P P R O C E D U R E 是 一 个 语 句 , 它 删 除 数 据 库 中 的 存 储 过 程 或 存 储 过 程 组 。语 法

D R O P P R O C E D U R E p r o c e d u r e[ , . . .n]

变 量

p r o c e d u r e p r o c e d u r e 是 要 删 除 的 存 储 过 程 。n n 指 前 面 的 项 可 以 重 复 。

示 例下 面 是 DRO P P R O C E D U R E 语 句 的 示 例 :

D R O P P R O C E D U R E M y P r o c e d u r e

本 例 中 , 删 去 了 一 个 存 储 过 程 。

Page 233: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D R O P R U L E

D R O P R U L E 是 一 个 语 句 , 它 删 去 作 为 数 据 库 对 象 的 用 户 定 义 的 规 则 。语 法

D R O P R U L E ru le[ , ⋯ n]变 量

r u l e r u l e 是 要 删 去 的 用 户 定 义 的 规 则 名 。n n 指 前 面 的 项 可 以 重 复 。

示 例下 面 是 DRO P R U L E 语 句 的 示 例 。

D R O P R U L E M y R u l e

本 例 中 , 删 除 了 一 个 规 则 。

D R O P S T A T I S T I C S

D R O P S T A T I S T I C S 可 删 去 列 的 统 计 数 字 。

Page 234: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

D R O P S T A T I S T I C S t a b l e . c o l u m n[ , . . .n]

变 量

t a b l e t a b l e 指 表 格 的 名 称 。co l u m n c o l u m n 指 列 名 。n n 指 前 面 的 项 可 以 重 复 。

D R O P T A B L E

D R O P T A B L E 删 去 表 格 及 其 索 引 、 触 发 器 、 约 束 和 许 可 , 但 使 用 该 表 格 的 视图 必 须 用 DRO P V I E W 来 删 除 。

语 法

D R O P T A B L E t a b l e _ n a m e

变 量 tab l e _ n a m e 指 要 删 去 的 表 格 。

Page 235: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D R O P T R I G G E R

D R O P T R I G G E R 可 删 除 作 为 数 据 库 对 象 的 触 发 器 。语 法

D R O P T R I G G E R t r i g g e r _ n a m e[ , ⋯ n]

变 量 tri g g e r _ n a m e 指 从 数 据 库 中 删 去 的 触 发 器 的 名 称 。

D R O P V I E W

D R O P V I E W 删 去 视 图 , 因 为 当 删 除 表 格 时 , 视 图 不 会 自 动 撤 消 , 所 以 才 使 用DRO P V I E W。

语 法

D R O P V I E W v i e w _ n a m e[ ,⋯ n]

变 量 vie w _ n a m e 是 要 作 为 数 据 库 对 象 删 去 的 视 图 。

Page 236: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D U M P

D U M P 只 是 为 了 向 后 兼 容 , 可 以 用 BAC K U P 来 代 替 DU M P。

E L S E ( I F ⋯ E L S E )

E L S E ( I F⋯ E L S E )是 条 件 语 句 集 。 如 果 条 件 返 回 真 , 则 执 行 语 句 ; 如 果 IF 条件 为 假 , 则 执 行 EL S E 语 句 。

语 法

I F B o o l e a n _ e x p r e s s i o n{ s q l _ s t a t e m e n t | s t a t e m e n t _ b l o c k }[ E L S E{ s q l _ s t a t e m e n t | s t a t e m e n t _ b l o c k }]

变 量

B o o l e a n _ e x p r e s s i o n B o o l e a n _ e x p r e s s i o n 返 回 真 或 假 。{ sql _ s t a t e m e n t |st a t e m e n t _ b l o c k}

Tra n s a c t - S Q L 语 句 或 语 句 。

Page 237: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 IF( I F⋯ EL S E )条 件 语 句 集 的 示 例 :

I F ( S E L E C T c o u n t ( C o l u m n l )F R O M M y T a b l eW H E R E C o l u m n l = l ) > 0B E G I NS E L E C T C o l u m n 2 F R O M M yTable E N DE L S E B E G I N S E L E C T C o l u m n 3 F R O M M yTable E N D

本 例 中 , 如 果 在 MyT a b l e 中 进 行 的 查 询 选 出 的 行 数 大 于 0, 就 选 择 Clo u m n 2;否 则 , 选 择 Co l u m n 3。

E N D ( B E G I N . . . E N D )

B E G I N⋯ E N D 将 一 系 列 Tra n s a c t - S Q L 语 句 括 起 来 , 像 在 IF⋯ EL S E 逻 辑 中 一

Page 238: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

样 , 使 这 些 语 句 作 为 程 序 块 来 执 行 。语 法

B E G I N{ s q l _ s t a t e m e n t| s t a t e m e n t _ b l o c k }E N D

变 量 sql _ s t a t e m e n t 或 st a t e m e n t _ b l o c k 是 Tr a n s a c t - S Q L 语 句 或 一 组 语 句 。示 例下 面 是 BEG I N⋯ EN D 语 句 的 示 例 :

I F ( S E L E C T c o u n t ( C o l u m n 1 )F R O M M y T a b l eW H E R E C o l u m n 1 = 1 ) > 0B E G I NS E L E C T C o l u m n 2F R O M M y T a b l e 2E N DE L S EB E G I NS E L E C T C o l u m n 3F R O M M y T a b l e

Page 239: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

E N D

本 例 中 , 如 果 在 MyT a b l e 中 进 行 的 查 询 选 出 的 行 数 大 于 0, 就 选 择 Clo u m 2;否 则 , 选 择 Co l u m n 3。

E X E C U T E

E X E C U T E 执 行 存 储 过 程 或 扩 展 存 储 过 程 , 也 可 以 执 行 Tra n s a c t - S Q L 批 处 理中 的 字 符 串 。

语 法

[[ E X E C [ U T E ]]{[ @ r e t u r n _ s t a t u s = ]{ p r o c e d u r e _ n a m e [ ; n u m b e r] | @ p r o c e d u r e _ n a m e _ v a r}[[ @ p a r a m e t e r = ] { v a l u e | @ v a r i a b l e [ O U T P U T] | [ D E F A U L T ]] [ ,...

n ][ W I T H R E C O M P I L E ]

执 行 字 符 串 的 语 法E X E C [ U T E ] ( { @ s t r ing_va r i ab l e | ′ t s q l _ s t r i n g′ | e x p r e s s i o n } [ + . . .n] )

Page 240: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

@ r e t u r n _ s t a t u s @ r e t u r n _ s t a t u s 可 保 存 存 储 过 程 的 返 回 状 态 , 而且 必 须 声 明 该 变 量 。

pro c e d u r e _ n a m e p r o c e d u r e _ n a m e 指 要 执 行 的 存 储 过 程 。nu m b e r n u m b e r 将 存 储 过 程 组 合 在 一 起 , 以 便 于 一 次 删 除

它 们 。@pr o c e d u r e _ n a m e _ v a r @ p r o c e d u r e _ n a m e _ v a r 是 保 存 存 储 过 程 名 称 的 本 地

变 量 。@pa r a m e t e r @ p a r a m e t e r 指 存 储 过 程 的 参 数 。Va l u e V a l u e 是 放 在 参 数 变 量 中 的 值 。@v a r i a b l e @ v a r i a b l e 是 保 存 参 数 的 局 部 变 量 。OU T P U T O U T P U T 指 存 储 过 程 将 返 回 参 数 。DE F A U L T D E F A U L T 指 参 数 的 缺 省 值 。n N 表 示 前 面 的 项 可 以 重 复 。WIT H R E C O M P I L E W I T H R E C O M P I L E 使 查 询 处 理 器 为 存 储 过 程 开 发 新

查 询 计 划 。@st r i n g _ v a r i a b l e @ s t r i n g _ v a r i a b l e 是 本 地 串 变 量 的 名 称 , 它 保 存

联 接 在 一 起 的 Tran s a c t - S Q L 语 句 。′ tsq l _ s t r i n g′ ′ ts q l _ s t r i n g ′ 是 括 在 引 号 中 的 Tra n s a c t - S Q L

语 句 或 几 个 语 句 串 。Exp r e s s i o n 表 达 式 可 以 是 常 量 、 列 名 、 函 数 、 子 查 询 程 序 或

Page 241: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

算 术 运 算 符 、 按 位 运 算 符 和 字 符 串 运 算 符 。

[ N O T ] E X I S T S

E X I S T S 或 NO T E X I S T S 通 过 返 回 真 或 假 检 测 子 查 询 程 序 返 回 的 行 是 否 存 在 。语 法

[ N O T] E X I S T S ( s u b q u e r y )

变 量

N O T N O T 为 布 尔 表 达 式 的 否 定 指 示 符Su b q u e r y s u b q u e r y 是 S E L E C T 语 句 。此 语 句 中 不 能 使 用 ORDER

B Y、 CO M P U T E 或 I N T O。

示 例下 面 是 NOT E X I S T S 检 测 的 示 例 。

S E L E C T D I S T I N C T n a m eF R O M M y T a b l eW H E R E N O T E X I S T S

Page 242: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

( S E L E C T *F R O M M y T a b l e 2W H E R E M y T a b l e _ I D = M y T a b l e . M y T a b l e _ I D )

本 例 中 , 如 果 第 二 个 表 格 中 存 在 ID, 就 返 回 表 的 准 确 名 称 。

E X P

E X P 返 回 浮 点 表 达 式 的 指 数 值 。语 法

E X P( f l o a t _ e x p r e s i s o n)

变 量 flo a t _ e x p r e s i s o n 是 浮 点 型 数 据 。

F E T C H

F E T C H 返 回 Tr a n s a c t - S Q L 游 标 中 的 一 行 。语 法

F E T C H

Page 243: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[[ N E X T | P R I O R | F I R S T | L A S T| A B S O L U T E { n | @ n v a r } | R E L A T I V E { n | @ n v a r } ]F R O M ] { { [ G L O B A L] c u r s o r _ n a m e } | c u r s o r _ v a r i a b l e _ n a m e

}[ I N T O @ v a r i a b l e _ n a m e[ , . . .n ]]

变 量

N E X T N E X T 检 索 当 前 行 下 面 的 一 行 , 它 是 FET C H 的 缺省 选 项 。

PR I O R P R I O R 检 索 当 前 行 的 前 一 行 。FI R S T F I R S T 检 索 游 标 中 的 第 一 行 。LA S T L A S T 检 索 游 标 中 的 最 后 一 行 。ABS O L U T E { n| @ n v a r } 如 果 n 或 @n v a r 为 正 , ABS O L U T E 使 这 一 行 成 为

当 前 行 中 游 标 前 面 的 第 n 行 , 并 对 其 进 行 检 索 。如 果 n 或 @n v a r 为 负 , 将 检 索 游 标 末 端 前 的 第 n行 。

REL A T I V E { n| @ n v a r } 如 果 n 或 @n v a r 为 正 , REL A T I V E 检 索 当 前 行 后的 第 n 行 , 如 果 n 或 @nvar 为 负 , REL A T I V E 返回 当 前 行 前 的 第 n 行 。

GL O B A L G L O B A L 指 全 局 游 标 。cur s o r _ n a m e c u r s o r _ n a m e 是 要 从 中 提 取 数 据 的 游 标 名 称 。

Page 244: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

c u r s o r _ v a r i a b l e _ n a m e c u r s o r _ v a r i a b l e _ n a m e 是 游 标 变 量 的 名 称 。INT O @ v a r i a b l e - n a m e[ ⋯ n] IN T O 将 数 据 放 在 局 部 变 量 中 。

F I L E _ I D

F I L E _ I D 返 回 当 前 数 据 库 中 逻 辑 文 件 名 称 的 文 件 标 识 号 。语 法

F I L E _ I D ( ′ F i l e _ n a m e′ )

变 量 fil e _ n a m e 是 sy s f i l e s 系 统 表 中 文 件 的 逻 辑 名 称 。

F I L E _ N A M E

F I L E _ N A M E 返 回 当 前 数 据 库 中 某 个 文 件 标 识 号 代 表 的 文 件 名 称 。语 法

F I L E _ N A M E ( fi le_id )

变 量 fil e _ i d 是 sy s f i l e s 系 统 表 中 的 文 件 标 识 符 列 。

Page 245: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F I L E G R O U P _ I D

F I L E G R O U P _ I D 返 回 当 前 数 据 库 中 某 文 件 组 名 称 的 文 件 组 标 识 号 。语 法

F I L E G R O U P _ I D ( ′ f i l e g r o u p _ n a m e′ )变 量 fil e g r o u p _ n a m e 是 文 件 组 名 称 , 且 与 sys f i l e g r o u p s 系 统 表 中 的 文 件

组 名 称 列 相 符 。

F I L E G R O U P _ N A M E

F I L E G R O U P _ N A M E 返 回 当 前 数 据 库 中 某 个 文 件 组 标 识 号 对 应 的 文 件 组 名 。语 法

F I L E G R O U P _ N A M E ( f i l e g r o u p _ i d )

变 量 fil e g r o u p _ i d 是 sy s f i l e g r o u p s 系 统 表 中 的 组 标 识 符 列 。

Page 246: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F I L E G R O U P P R O P E R T Y

当 将 文 件 组 和 属 性 名 称 作 为 变 量 提 供 时 , FIL E G R O U P P R O P E R T Y 返 回 文 件 组 的属 性 值 , 1=真 , 0=假 , NULL= 属 性 值 没 有 找 到 , 属 性 名 称 可 以 是 IsR e a d O n l y,Is D e f a u l t 和 Is U s e r D e f i n e d F G。

语 法

F I L E G R O U P P R O P E R T Y ( ′ f i l e g r o u p _ n a m e′ , ′ p r o p e r t y′ )

变 量

′ fil e g r o u p _ n a m e′ fi l e g r o u p _ n a m e 是 文 件 组 的 名 称 。′ prop e r t y′ p r o p e r t y 是 文 件 组 属 性 的 名 称 , IsR e a d O n l y,

I s D e f a u l t, 和 Is U s e r D e f i n e d F G。

F I L E P R O P E R T Y

F I L E P R O P E R T Y 返 回 文 件 的 属 性 值 , 1=真 , 0=假 , NU L L =属 性 值 没 有 找 到 , 属性 名 可 以 是 Is L o g F i l e, Sp a c e U s e d, Is R e a d O n l y 和 IsP r i m a r y F i l e。

语 法

Page 247: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F I L E P R O P E R T Y ( ′ fi l e _ n a m e′ , ′ pro p e r t y′ )

变 量

′ fil e _ n a m e′ f i l e _ n a m e 是 文 件 的 名 称 。′ prop e r t y′ p r o p e r t y 是 文 件 属 性 的 名 称 :Is l o g F i l e ,

S p a c e U s e d, Is R e a d O n l y 和 Is P r i m a r y F i l e。

浮 点 数 和 实 数

参 阅 Dat a T y p e s。

F L O O R

F L O O R 返 回 小 于 或 等 于 数 字 表 达 式 变 量 的 整 数 值 。语 法

F L O O R ( n u m e r i c _ e x p r e s s i o n )

变 量 num e r i c _ e x p r e s s i o n 可 以 是 小 数 、 浮 点 数 、 整 型 数 、 货 币 值 、 实 数 、短 整 型 数 、 小 货 币 数 或 微 短 整 型 表 达 式 。

Page 248: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 FLO O R 函 数 的 示 例 :

S E L E C T F L O O R ( 2 . 3 ) ; F L O O R ( - 2 . 3 )G O

本 例 中 , FLO O R ( 2 . 3 )返 回 值 为 2, FL O O R ( - 2 . 3 )返 回 值 为 -3。

F O R M A T M E S S A G E

F O R M A T M E S S A G E 格 式 化 sys m e s s a g e s 系 统 表 的 系 统 信 息 中 的 信 息 , 并 返 回 已格 式 化 的 信 息 。

语 法

F O R M A T M E S S A G E ( m s g _ n u m b e r, p a r a m _ v a l u e,[ ,⋯ n] )

变 量

m s g _ n u m b e r m s g _ n u m b e r 是 信 息 的 标 识 符 , 此 变 量 作 为 一 行 保 存在 mas t e r 系 统 数 据 库 的 sys m e s s a g e s 系 统 表 格 中 。

par a m _ v a l u e p a r a m _ v a l u e 是 表 示 代 替 信 息 中 的 变 量 的 正 值 (最 大为 20)。

Page 249: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R E E T E X T

F R E E T E X T 搜 索 字 符 全 文 启 动 列 中 意 思 相 符 的 列 , 在 匹 配 搜 索 前 , 先 把 ′fre e t e x t - s t r i n g′ 分 成 加 权 搜 索 项 。

语 法

F R E E T E X T ( { c o l u m n| * } ,′ f r e e t e x t _ s t r i n g′ )

变 量

c o l u m n c o l u m n 指 启 动 全 文 搜 索 的 字 符 列 的 名 称 。* * 指 搜 索 所 有 的 全 文 启 动 列 , 查 找 意 义 上 与

fre e t e x t _ s t r i n g 变 量 匹 配 的 列 。fre e t e x t _ s t r i n g f r e e t e x t _ s t r i n g 表 示 要 在 列 中 搜 索 的 意 义 接 近

的 字 符 。示 例下 面 为 使 用 FR E E T E X T 的 示 例 :

S E L E C T M y C o l u m nF R O M M y T a b l eW H E R E F R E E T E X T ( M y F u l l T e x t E n a b l e d C o l u m n , ′ p l a n e t s i n t h e u n i v e r s e′ )G O

Page 250: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

本 例 中 , 在 MyF u l l T e x t E n a b l e d C o l u m n 中 搜 寻 意 思 与 变 量 ′ pla n e t s i n t h eu n i v e r s e′ 相 近 的 项 , 此 搜 索 不 如 使 用 另 一 种 全 文 搜 索 工 具 CON T A I N S 语 法 精确 。

F R E E T E X T T A B L E

F R E E T E X T T A B L E 将 结 果 集 提 供 为 表 格 行 , 在 该 表 格 中 , 字 符 列 值 在 意 义 上 与′ fre e t e x t _ s t r i n g′ 变 量 中 字 符 一 致 的 每 一 行 都 附 带 有 RA N K。 该 语 法 允 许 在使 用 FRE E T E X T 的 SE L E C T 查 询 的 FROM 子 句 中 使 用 FRE E T E X T T A B L E。

语 法

F R E E T E X T T A B L E ( tab le, { c o l u m n| * }, ′ f r e e t e x t _ s t r i n g′ )

变 量

t a b l e t a b l e 是 全 文 启 用 表 格 的 名 称 。Co l u m n c o l u m n 是 搜 寻 的 全 文 启 用 列 的 名 称 。* * 表 示 搜 索 所 有 的 全 文 启 用 列 , 查 找 与

fre e t e x t _ s t r i n g 匹 配 的 列 。fre e t e x t _ s t r i n g f r e e t e x t _ s t r i n g 表 示 要 在 列 中 搜 索 的 意 义 一

致 的 字 符 。

Page 251: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M

F R O M 子 句 放 在 表 格 、视 图 、派 生 表 ,以 及 在 DEL E T E、I N S E R T、S E L E C T 和 U P D A T E语 句 中 使 用 的 连 接 表 格 的 前 面 。

语 法

F R O M{ < t a b l e _ o r _ v i e w > | ( s e l e c t _ s t a t e m e n t ) [ A S ] a l i a s | < t a b l e _ o r _ v i e w >[ { C R O S S | I N N E R | { F U L L | L E F T | R I G H T }[ O U T E R ][ < j o i n _ h i n t > ]J O I N< t a b l e _ o r _ v i e w > O N s e a r c h _ c o n d i t i o n s ]| C O N T A I N S T A B L E ( t a b l e , { c o l u m n | * } ,′ < c o n t a i n s _ s e a r c h _ c o n d i t i o n >′ )| F R E E T E X T T A B L E( t a b l e , { c o l u m n | * } ,′ f r e e t e x t _ s t r i n g′ )} [ ,...n]

< t a b l e _ o r _ v i e w > : : ={ t ab le [[ A S] a l i a s ] [ W I T H ( < t a b l e _ h i n t > [ . . . m ] )]| v i e w [[ A S ] a l i a s ]| O P E N R O W S E R ( ′ p r o v i d e r _ n a m e′ ,{ ′ d a t a s o u r c e′ ;′ use r_ id ′ ;′ p a s s w o r d ′ | ′ p r o v i d e r _ s t r i n g′ } ,

Page 252: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

{[ c a t a l o g .][ s c h e m a .] o b j e c t _ n a m e | ′ q u e r y′ } )| O P E N Q U E R Y ( l i n k e d _ s e r v e r ,′ q u e r y′ )}

< t a b l e _ h i n t > : : =([ I N D E X ={

i n d e x _ n a m e| i ndex_ id ]

} [ ,... n ][ FA S T F I R S T R O W ][ H O L D L O C K ][ N O L O C K ][ PA G L O C K ][ R E A D C O M M I T T E D ][ R E A D P A S T ][ R E A D U N C O M M I T T E D ][ R E P E A T A B L E R E A D][ R O W L O C K ][ S E R I A L I Z A B L E ][ T A B L O C K ][ TA B L O C K X ][ U P D L O C K ])< j o i n _ h i n t > : : ={H A S H| L O O P| M E R G E}

Page 253: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

< t a b l e _ o r _ v i e w > < t a b l e _ o r _ v i e w >指 F R O M 子 句 中 引 用 的 表 格 或 视图 。

al i a s 可 以 给 每 个 表 格 或 视 图 命 名 一 个 别 名 , 即 表 格 或视 图 的 简 写 名 称 。 两 个 表 格 中 很 可 能 有 2 个 同 名的 列 , 这 种 情 形 下 用 别 名 以 全 限 定 的 方 式 引 用 表格 中 的 列 就 较 方 便 。

<ta b l e _ h i n t > t a b l e _ h i n t 决 定 所 使 用 的 索 引 , 表 格 扫 描 或 锁 定策 略 。 对 新 优 化 程 序 的 提 示 请 参 阅 第 6 章 。

n n 表 示 前 面 的 项 可 以 重 复 。OPE N R O W S E T O P E N R O W S E T 定 义 从 数 据 源 中 访 问 远 程 数 据 的 联 接

信 息 。 请 参 阅 本 章 后 面 的 “ OPE N R O W S E T”。OP E N Q U E R Y O P E N Q U E R Y 执 行 通 过 查 询 程 序 。 请 参 阅 本 章 后 面 的

“ OPE N Q U E R Y”。se l e c t _ s t a t e m e n t 此 语 句 负 责 从 数 据 库 中 返 回 行 。CR O S S C R O S S 表 示 两 表 格 的 交 叉 积 。FU L L[ OU T E R] 如 果 在 SE L E C T 语 句 中 提 供 了 FU L L[ OU T E R], 即 使

两 个 表 格 没 有 任 何 匹 配 , 也 要 从 两 表 格 中 接 收 行 ,不 匹 配 行 的 列 以 NU L L 来 显 示 。

IN N E R I N N E R 联 接 是 缺 省 值 , 它 表 示 只 返 回 匹 配 的 行 。LE F T[ OU T E R] L E F T[ OU T E R] 联 接 表 示 返 回 匹 配 的 行 , 对 于 不 匹

Page 254: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

配 的 行 , 左 边 表 格 中 的 行 包 括 在 结 果 集 中 , 另 一个 表 格 中 的 行 设 置 为 NU L L。

RI G H T[ OU T E R] R I G H T[ OU T E R ] 联 接 表 示 返 回 匹 配 的 行 , 对 于 不匹 配 的 行 , 右 边 表 格 中 的 行 包 括 在 结 果 集 中 , 另一 个 表 格 中 的 行 设 置 为 NULL。

JO I N J O I N 表 示 将 进 行 联 接 操 作 。<jo i n _ h i n t > 为 查 询 优 化 程 序 提 供 joi n _ h i n t, 说 明 在 FROM 子

句 中 如 何 利 用 每 个 联 接 中 的 联 接 提 示 进 行 联 系 操作 。

sea r c h _ c o n d i t i o n s s e a r c h _ c o n d i t i o n s 用 W H E R E 子 句 的 Tra n s a c t - S Q L语 法 列 出 对 返 回 的 行 的 限 制 。

n n 表 示 前 面 的 项 可 以 重 复 。CON T A I N S T A B L E 当 搜 索 字 符 全 文 启 用 列 , 查 找 某 个 单 词 或 短 语 的

精 确 匹 配 或 相 近 匹 配 , 几 个 单 词 与 其 他 单 词 的 相近 匹 配 , 以 及 加 权 匹 配 时 , CON T A I N S T A B L E 将 返 回一 个 表 格 。

FRE E T E X T T A B L E F R E E T E X T T A B L E 返 回 在 意 义 上 与 字 符 全 文 启 用 列 相匹 配 的 表 格 。

示 例下 面 是 ANS I F U L L O U T E R J O I N 的 示 例 :

S E L E C T C o l u m n 1 , C o l u m n 2

Page 255: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M M y T a b l e a F U L L O U T E R J O I N M y T a b l e 2 bO N a . M y _ I d = b . M y _ I dW H E R E M y T a b l e . M y _ O t h e r I d I N ( 9 8 7 , 3 4 6 , 9 8 5 )

本 例 中 , 形 成 了 全 外 部 连 接 。

F U L L T E X T C A T A L O G P R O P E R T Y

F U L L T E X T C A T A L O G P R O P E R T Y 显 示 与 全 文 目 录 属 性 有 关 的 信 息 。语 法

F U L L T E X T C A T A L O G P R O P E R T Y (′ c a t a l o g _ n a m e′ , ′ p r o p e r t y ′ )

变 量

′ cat a l o g _ n a m e′ ca t a l o g _ n a m e 是 全 文 目 录 的 名 称 。′ prop e r t y′ 全 文 目 录 的 属 性 有 :Po p u l a t e S t a t u s 0 = I d l e ( 空

闲 ), 1=P o p u l a t i o n i n p r o g r e s s ( 在 进 程 中 装 载 ),2=P a u s e d ( 暂 停 ) , 3=T h r o t t l e d ( 调 节 ) ,4= R e c o v e r i n g ( 恢 复 ), 5=S h u t d o w n ( 关 闭 ),6=I n c r e m e n t a l p o p u l a t i o n i n p r o g r e s s ( 在 进 程中 递 增 总 值 ) 7 =更 新 索 引 。

Page 256: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I t e m C o u n t 全 文 目 录 项 的 计 数 。Inde x S i z e 全 文 索 引 的 容 量 , 以 MB 为 单 位 。Uni q u e K e y C o u n t 全 文 索 引 中 专 用 键 的 计 数 。lo g S i z e 最 后 一 次 装 载 的 全 文 索 引 的 容 量 , 以 MB表 示 。Pop u l a t e C o m p l e t i o n A g e 计 算 完 成 最 后 一 次 装 载 的时 间 时 , 可 减 去 完 成 的 日 期 和 01/ 01/ 19 9 0 0 0:0 0: 00。

F U L L T E X T S E R V I C E P R O P E R T Y

F U L L T E X T S E R V I C E P R O P E R T Y 显 示 与 全 文 服 务 属 性 有 关 的 信 息 。语 法

F U L L T E X T S E R V I C E P R O P E R T Y (′ p r o p e r t y′ )

变 量

′ prop e r t y′ 全 文 服 务 的 属 性 有 :Re s o u r c e u s a g e, 1=背 景 , 5=专 用 。 Con n e c t T i m e O u t , 乘 4 得 到 Mic r o s o f tS e a r c h S e r v i c e 的 秒 数 , 启 动 全 文 索 引 的 装 载 。

Page 257: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I s F u l l t e x t I n s t a l l e d, 1 =安 装 Mic r o s o f t S e a r c hS e r v i c e, 0 =没 有 安 装 Mic r o s o f t S e a r c h S e r v i c e

G E T A N S I N U L L

G E T A N S I N U L L 是 一 个 函 数 , 如 果 数 据 库 使 用 无 效 性 的 AN S I 缺 省 值 , 则 该 函数 返 回 1。如 果 无 效 性 不 是 AN S I 缺 省 值 ,就 返 回 0,在 CRE A T E T A B L E 或 A L T E R T A B L E语 句 中 指 定 NU L L 就 可 以 忽 略 它 。 设 置 缺 省 操 作 还 可 以 使 用 sp_ d b o p t i o n′ A N S IN U L L D E F A U L T′ , {t u r e| fa l s e }, SE T A N S I _ N U L L _ D F L T _ O N { O N| O F F }或 者 SE TA N S I _ N U L L _ D E F L T _ O F F { O N| O F F }。

语 法

G E T A N S I N U L L ([ ′ d a t a b a s e′ ] )

变 量 dat a b a s e 是 数 据 库 名 称 。

G E T D A T E

G E T D A T E 是 一 函 数 , 它 返 回 系 统 日 期 和 时 间 。语 法

Page 258: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

G E T D A T E ( )

G O

G O 是 执 行 批 量 Tra n s a c t - S Q L 语 句 的 命 令 。语 法G O

G O T O

G O T O 是 将 程 序 控 制 流 传 送 给 标 签 的 命 令 。语 法

G O T O l a b e l

变 量 label 是 在 Tr a n s a c t - S Q L 中 GOTO 语 句 传 送 程 序 控 制 的 点 。

G R A N T

参 阅 第 5 章 。

Page 259: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

G R O U P B Y

参 阅 本 章 后 面 的 “ SE L E C T”。

G R O U P I N G

在 CUBE 或 RO L L U P 子 句 插 入 行 时 , GRO U P I N G 为 包 含 值 1 的 输 出 建 立 附 加 列 ,如 果 不 是 由 CUBE 或 RO L L U P 语 句 插 入 行 , 而 是 CU B E 或 RO L L U P 和 G R O U P B Y 子 句一 起 使 用 , 则 附 加 列 将 包 含 0。

语 法

G R O U P I N G ( c o l u m n _ n a m e )

变 量 col u m n _ n a m e 表 示 检 查 CU B E 或 RO L L U P 提 示 符 的 GR O U P 子 句 中 的 附 加列 。

H A V I N G

H A V I N G 是 与 SEL E C T . . . G R O U P B Y 语 句 一 起 使 用 的 分 组 搜 索 条 件 ( 通 常 使 用集 合 函 数 )。 它 与 WHERE 语 句 很 相 似 。

Page 260: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

H AV I N G < s e a r c h _ c o n d i t i o n >

变 量 sea r c h _ c o n d i t i o n 是 必 须 满 足 的 分 组 条 件 。

H O S T _ I D

H O S T _ I D 函 数 返 回 工 作 站 的 标 识 号 。语 法

H O S T _ I D ( )

H O S T _ N A M E

H O S T _ N A M E 函 数 返 回 工 作 站 的 名 称 。语 法

H O S T _ N A M E( )

Page 261: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I D E N T _ I N C R

I D E N T _ I N C R 是 一 个 函 数 。 当 用 等 同 列 创 建 表 格 或 视 图 时 , 此 函 数 返 回 所 指定 的 表 格 或 视 图 的 相 等 的 增 量 值 。

语 法

I D E N T _ I N C R( ′ t a b l e _ o r _ v i e w ′ )

变 量 tab l e _ o r _ v i e w 是 要 查 看 其 相 等 增 量 值 的 表 格 或 视 图 。

I D E N T _ S E E D

I D E N T _ S E E D 是 一 个 函 数 。 当 用 等 同 列 创 建 表 格 或 视 图 时 , 此 函 数 返 回 所 指定 的 表 格 或 视 图 的 初 值 ( 即 se e d)。

语 法

I D E N T _ S E E D ( ′ t a b l e _ o r _ v i e w ′ )

变 量 tab l e _ o r _ v i e w 是 要 查 看 其 相 等 初 值 的 表 格 或 视 图 。

Page 262: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I D E N T I T Y

等 同 列 提 供 某 列 中 唯 一 的 、 自 动 生 成 的 值 。语 法

I D E N T I T Y ( d a t a _ t y p e [ , s e e d , i n c r e m e n t])

示 例下 面 是 等 同 列 的 示 例 :

C R E A T E T A B L E M y T a b l e ( M y _ I d i n t I D E N T I T Y ( 1 , 1 ) , M y D e s c rv a r c h a r ( 3 0 ) )

本 例 中 , 将 My _ I d 列 创 建 为 等 同 列 。

I F . . . E L S E

参 见 本 章 后 面 的 EL S E。

Page 263: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

IN

I N 子 句 查 看 某 值 是 否 在 其 它 值 的 列 表 中 。语 法

E x p r e s s i o n I N( s u b q u e r y | e x p r e s s i o n [ , . . .n] )

变 量

e x p r e s s i o n e x p r e s s i o n 指 任 意 合 法 的 SQ L 表 达 式 。Sub q u e r y s u b q u e r y 的 结 果 集 必 须 具 有 一 列 , 表 达 式 的 数 据 类

型 必 须 一 致 。示 例下 面 是 IN 语 句 的 示 例 :

S E L E C T M y C o l u m n , M y I dF R O M M y T a b l eW H E R E M y I d I N( S E L E C T M y I dF R O M M y O t h e r T a b l eW H E R E M y O t h e r C o l u m n L I K E ( % t h i s % ) )

Page 264: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

在 本 例 中 , 当 在 MyO t h e r 表 中 查 找 到 My I d 时 , 就 返 回 My C o l u m n 和 M y I d。

I N D E X P R O P E R T Y

I N D E X P R O P E R T Y 对 于 在 表 中 的 索 引 返 回 索 引 的 属 性 值 。 索 引 的 属 性 有 :Ind e x D e p t h , Is C l u s t e r e d , Is U n i q u e , In d e x F i l l F a c t o r , Is P a d I n d e x ,Is F u l l T e x t K e y, 其 中 1=真 ( tr u e), 0=假 ( fa l s e), NUL L =没 找 到 属 性 值 。

语 法

I N D E X P R O P E R T Y ( t a b l e _ I D , i n d e x′ , p r o p e r t y′ )

变 量

t a b l e _ I D t a b l e _ I D 是 表 的 OBJ E C T _ I D。′ in d e x′ i n d e x 是 索 引 名 。′ prop e r t y′ p r o p e r t y 是 索 引 的 属 性 名 。

I N D E X _ C O L

I N D E X _ C O L 是 一 个 函 数 , 它 将 返 回 已 索 引 的 列 名 。语 法

Page 265: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I N D E X _ C O L( ′ t ab le′ , i n d e x _ i d , k e y _ i d)

下 列 变 量 的 意 义 为 :

′ ta b l e′ t a b l e 是 表 的 名 字 。in d e x _ i d i n d e x _ i d 是 索 引 的 in d i d。ke y _ i d k e y _ i d 是 键 索 引 的 主 要 列 数 ( 1 到 16)。

I N S E R T

I N S E R T 语 句 可 在 表 或 视 图 中 插 入 一 行 或 几 行 。语 法

I N S E R T [ I N T O ] { < t a b l e _ o r _ v i e w > }{{[ ( c o l u m n _ l i s t )] V A L U E S( { D E F A U L T| c o n s t a n t _ e x p r e s s i o n

Page 266: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

}[ ,... n ])| s e l e c t _ s t a t e m e n t| e x e c u t e _ s t a t e m e n t}| D E F A U L T V A L U E S}< t a b l e _ o r _ v i e w > : : ={

t a b l e [[ A S ] a l i a s] [ W I T H ( < t a b l e _ h i n t > [ . . . m ] )]| v i e w [[ A S ] a l i a s ]| O P E N R O W S E T (′ p r o v i d e r _ n a m e ′ ,{

′ d a t a s o u r c e′ ;′ u s e r _ i d ′ ;′ p a s s w o r d′| ′ p r o v i d e r _ s t r i n g′} ,{

[ c a t a l o g .][ s c h e m a .] o b j e c t _ n a m e| ′ q u e r y′} )| O P E N Q U E R Y ( l i n k e d _ s e r v e r ,′ q u e r y′ )}

Page 267: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< t a b l e _ h i n t > : : =([ I N D E X ={

i n d e x _ n a m e| i n d e x _ i d]} [ ,... n ][ H O L D L O C K ] [ P A G L O C K ] [ R E A D C O M M I T T E D ][ R E A D U N C O M M I T T E D ] [ R E P E A T A B L E R E A D ][ R O W L O C K ] [ S E R I A L I Z A B L E ] [ T A B L O C K ] [ T A B L O C K X ])

变 量

I N T O I N T O 是 表 或 视 图 前 面 的 关 键 字 。Col u m n _ l i s t C o l u m n _ l i s t 是 列 的 清 单 。VA L U E S V A L U E S 是 在 列 的 清 单 中 按 一 一 对 应 赋 给 各 列 的

数 值 。DE F A U L T D E F A U L T 表 示 要 放 在 列 中 的 列 的 缺 省 值 。 该 变

量 不 能 与 等 同 列 一 起 使 用 。con s t a n t _ e x p r e s s i o n c o n s t a n t _ e x p r e s s i o n 可 以 是 表 达 式 , 常 数 ,

或 变 量 。n n 表 示 前 面 的 值 可 以 重 复 。

Page 268: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

s e l e c t _ s t a t e m e n t S E L E C T 语 句 用 于 查 询 要 放 在 表 中 的 数 据 。exe c u t e _ s t a t e m e n t e x e c t u t e _ s t a t e m e n t 是 任 意 合 法 的 EXE C U T E 语

句 。 这 些 语 句 返 回 的 结 果 集 与 要 插 入 的 结 果 集的 列 相 匹 配 。

DEF A U L T V A L U E S D E F U L T V A L U E S 表 示 新 行 将 包 含 每 一 列 的 缺 省值 。

<ta b l e _ o r _ v i e w > t a b l e _ o r _ v i e w 是 表 或 视 图 的 标 题 名 。ta b l e t a b l e 是 要 放 入 数 据 的 表 名 。al i a s a l i a s 是 赋 给 表 或 视 图 的 缩 写 名 。vi e w v i e w 是 视 图 名 。OPE N R O W S E T O P E N R O W S E T 包 含 了 使 用 数 据 源 中 的 远 程 数 据 的

连 接 定 义 。OP E N Q U E R Y O P E N Q U E R Y 运 行 通 过 查 询 。 请 参 阅 本 章 后 面 的

“ OPE N Q U E R Y”。<t a b l e _ h i n t > t a b l e _ h i n t 通 知 SQ L S e r v e r 查 询 优 化 程 序 如

何 执 行 查 询 。 请 参 阅 第 6 章 的 “ 新 优 化 程 序 提示 ”。

IND E X = i n d e x _ n a m e| i n d e x _ i d

如 果 给 出 了 索 引 优 化 程 序 提 示 , 该 索 引 可 用 来处 理 查 询 。

示 例下 面 是 INS E R T 语 句 的 示 例 :

Page 269: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

I N S E R T M y T a b l e( C o l u m n 1 , C o l u m n 2 , C o l u m n 3 )V A L U E S( 1 , D E F A U L T , ′ V a l u e f o r c o l u m n 3 ′ )

本 例 中 ,值 1 是 co l u m n 2 的 缺 省 值 ,co l u m n 3 的 值 可 作 为 一 行 插 入 到 My T a b l e中 。

i n t , s m a l l i n t 和 t i n y i n t

请 参 阅 数 据 类 型 。

I S _ M E M B E R

如 果 当 前 用 户 不 是 组 或 角 色 的 成 员 , IS_ M E M B E R 函 数 就 返 回 0, 如 果 当 前 用户 是 组 或 角 色 的 成 员 ,IS _ M E M B E R 函 数 就 返 回 1,如 果 不 存 在 组 或 角 色 ,IS_ M E M B E R函 数 就 返 回 NU L L。

语 法

I S _ M E M B E R( {′ g r o u p′ | ′ ro l e′ } )

Page 270: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

′ gr o u p′ gr o u p 是 W i n d o w s N T 组 的 名 称 , 由 dom a i n \g r o u p 引 用 。

′ ro l e′ rol e 是 SQ L S e r v e r 角 色 的 名 称 , 而 不 是 服 务器 角 色 的 名 称 。 对 于 服 务 器 角 色 , 使 用IS_ S R V R O L E M E M B E R。

I S _ S R V R O L E M E M B E R

如 果 当 前 用 户 不 是 服 务 器 角 色 的 成 员 , IS_ S R V R O L E M E M B E R 函 数 就 返 回 0,如 果 当 前 用 户 是 服 务 器 角 色 的 成 员 , IS_ S R V R O L E M E M B E R 函 数 就 返 回 1, 如 果 不存 在 服 务 器 角 色 , IS_ S R V R O L E M E M B E R 函 数 就 返 回 NU L L。

语 法

I S _ S R V R O L E M E M B E R ( ′ ro le′ [ ,′ log in ′ ])

变 量

′ ro l e′ ro l e 是 服 务 器 角 色 sy s a d m i n , dbc r e a t o r ,d i s k a d m i n , pr o c e s s a d m i n , ser v e r a d m i n ,se t u p a d m i n, se c u r i t y a d m i n 的 名 称 。

Page 271: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

′ lo g i n′ lo g i n 是 要 检 查 的 注 册 名 。 如 果 没 有 提 供 该 变 量 ,就 使 用 当 前 用 户 的 注 册 帐 户 。

I S D A T E

I S D A T E 函 数 检 查 变 量 或 var c h a r 列 , 当 表 达 式 包 含 合 法 的 日 期 时 , 它 返 回1, 当 表 达 式 不 包 含 日 期 时 , 它 返 回 0。

语 法

I S D A T E( e x p r e s s i o n)

变 量 exp r e s s i o n 是 变 量 或 var c h a r 列 。

I S [ N O T ] N U L L

I S[ N O T] NU L L 检 查 表 达 式 是 否 为 NULL。语 法

e x p r e s s i o n I S [ N O T] N U L L

Page 272: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

e x p r e s s i o n e x p r e s s i o n 是 任 一 表 达 式 。NO T N O T 是 布 尔 表 达 式 的 负 运 算 符 。

I S N U L L

I S N U L L 函 数 可 用 NU L L 替 代 非 空 数 据 。语 法I S N U L L ( e x p r e s s i o n, s u b s t i t u t i o n _ v a l u e)

变 量

e x p r e s s i o n e x p r e s s i o n 是 要 检 查 空 值 的 内 容 。sub s t i t u t i o n _ v a l u e 如 果 表 达 式 为 NU L L , 就 返 回

sub s t i t u t i o n _ v a l u e。

I S N U M E R I C

如 果 表 达 式 是 整 数 、 浮 点 数 、 货 币 或 小 数 , ISN U M E R I C 函 数 就 返 回 1, 如 果表 达 式 不 是 一 个 数 值 , ISN U M E R I C 函 数 就 返 回 0。

Page 273: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

I S N U M E R I C ( e x p r e s s i o n )

变 量 必 须 是 一 个 字 符 串 。

K I L L

K I L L 命 令 结 束 一 个 过 程 。语 法

K I L L { spid }[ W I T H { A B O R T | C O M M I T }]

变 量 sp i d 是 要 终 止 的 过 程 ID。

L E F T

L E F T 函 数 返 回 字 符 表 达 式 从 左 边 开 始 的 给 定 的 字 节 数 。 如 果 该 整 数 是 一 个 负 数 ,就 返 回 NU L L。

语 法

Page 274: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L E F T ( c h a r a c t e r _ e x p e r e s s i o n, i n t e g e r _ e x p r e s s i o n)

变 量

c h a r a c t e r _ e x p e r e s s i o n c h a r a c t e r _ e x p e r e s s i o n 可 以 是 变 量 、 常 数或 表 中 的 列 。

int e g e r _ e x p r e s s i o n i n t e g e r _ e x p r e s s i o n 可 以 是 变 量 、 常 数 或表 中 的 列 , 表 示 要 返 回 的 字 符 数 。

L E N

L E N 函 数 提 供 了 字 符 串 表 达 式 中 字 符 的 长 度 。语 法

L E N ( s t r i n g _ e x p r e s s i o n )

变 量 str i n g _ e x p r e s s i o n 可 以 是 变 量 、 常 数 或 列 , 也 可 以 是 返 回 字 符 数 据类 型 的 表 达 式 ( 类 似 于 合 并 字 符 串 函 数 , 它 返 回 一 个 字 符 串 )。

Page 275: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L I K E

L I K E 子 句 和 字 符 串 一 起 使 用 , 以 确 定 与 通 配 符 相 匹 配 的 模 式 。语 法

m a t c h _ e x p r e s s i o n [ N O T ] L I K E pa t t e rn

变 量

m a t c h _ e x p r e s s i o n m a t c h _ e x p r e s s i o n 是 任 何 合 法 的 字 符 SQ L 表达 式 。

Pa t t e r n p a t t e r n 是 要 在 变 量 mat c h _ e x p r e s s i o n 中 查找 的 内 容 。 在 模 式 中 可 以 使 用 通 配 符 。%表 示 查 找 任 意 长 度 的 内 容 。_表 示 查 找 任 一 字 符 。[ ] 包 含 字 符 的 范 围 或 列 表 。[ ^] 要 排 除 的 字 符 。

示 例下 面 是 LIKE 子 句 的 示 例 :

S E L E C T *

Page 276: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M M y t a b l eW H E R E C o l u m n 1 L I K E " % M S % "

本 例 中 , 返 回 MyT a b l e 表 的 Co l u m n 1 列 中 在 任 意 位 置 上 有 连 续 字 符 MS 的 所有 行 。

L O A D

L O A D 只 为 了 向 后 兼 容 。 可 用 RES T O R E 命 令 代 替 它 。 参 阅 本 章 后 面 的“ RES T O R E”。

L O G

当 给 出 浮 点 表 达 式 时 , LO G 函 数 返 回 浮 点 表 达 式 的 自 然 对 数 。语 法

L O G ( f l o a t _ e x p r e s s i o n)

变 量 flo a t _ e x p r e s s i o n 是 浮 点 表 达 式 。

Page 277: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L O G 1 0

当 给 出 浮 点 表 达 式 时 , LOG 1 0 函 数 返 回 浮 点 表 达 式 的 底 数 为 10 的 对 数 。语 法

L O G 1 0 ( f l o a t _ e x p r e s s i o n)

变 量 flo a t _ e x p r e s s i o n 是 浮 点 表 达 式 。

L O W E R

L O W E R 函 数 将 大 写 字 符 转 换 为 小 写 字 符 。语 法

L O W E R ( c h a r a c t e r _ e x p r e s s i o n)

变 量 是 字 符 表 达 式 。

Page 278: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L T R I M

L T R I M 删 除 字 符 表 达 式 中 的 前 导 空 格 。语 法

L T R I M ( c h a r a c t e r _ e x p r e s s i o n)

变 量 是 字 符 表 达 式 。

M A X

M A X 返 回 表 达 式 中 的 最 大 值 , 但 它 不 能 与 位 列 一 起 使 用 。语 法

M A X ([ A L L | D I S T I N C T] e x p r e s s i o n )

变 量

A L L A L L 是 缺 省 值 。DI S T I N C T D I S T I N C T 表 示 唯 一 值 。 在 这 里 使 用 该 变 量 是 与

AN S I 兼 容 的 , 但 没 有 意 义 。

Page 279: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

E x p r e s s i o n e x p r e s s i o n 可 以 是 常 数 、 列 或 函 数 , 也 可 以 包含 算 术 运 算 符 、 按 位 运 算 符 和 字 符 串 运 算 符 。

示 例下 面 是 MA X 函 数 的 示 例 :

S E L E C T M A X ( C o l u m n 1 )F R O M M y T a b l e

本 例 中 , 返 回 表 MyT a b l e 的 Co l u m n 1 列 的 最 大 值 。

M IN

M I N 返 回 表 达 式 中 的 最 小 值 , 但 它 不 能 与 位 列 一 起 使 用 。语 法

M I N ( [ A L L | D I S T I N C T] e x p r e s s i o n )

变 量

A L L A L L 是 缺 省 值 。DI S T I N C T D I S T I N C T 表 示 唯 一 值 。在 这 里 使 用 该 变 量 是 与 ANSI

Page 280: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

兼 容 的 , 但 没 有 意 义 。Exp r e s s i o n e x p r e s s i o n 可 以 是 常 数 、 列 或 函 数 , 也 可 以 包 含

算 术 运 算 符 、 按 位 运 算 符 和 字 符 串 运 算 符 。

示 例下 面 是 MI N 函 数 的 示 例 :

S E L E C T M I N ( C o l u m n 1 )F R O M M y T a b l e

本 例 中 , 返 回 表 MyT a b l e 的 Co l u m n 1 列 的 最 小 值 。

m o n e y 和 s a m l l m o n e y

请 参 阅 本 章 前 面 的 “ Da t a T y p e s”。

M O N T H

请 参 阅 本 章 前 面 的 “ 日 期 函 数 ”。 MON T H( da t e) 与 DATE P A R T ( m m , d a t e )相同 。

Page 281: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N C H A R

N C H A R 返 回 整 数 0- 6 5 5 3 5 的 标 准 Uni c o d e 字 符 。语 法

N C H A R( i n t e g e r _ e x p r e s s i o n)

变 量 是 整 数 0- 6 5 5 3 5。

n c h a r 和 n v a r c h a r

请 参 阅 本 章 前 面 的 “ Da t a T y p e s”。

N E W I D

N E W I D 函 数 返 回 uni q u e i d e n t i f i e r 值 。语 法

N E W I D ( )

Page 282: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N O T

N O T 是 布 尔 表 达 式 的 负 运 算 符 。语 法

[ N O T] b o o l e a n _ e x p r e s s i o n

变 量 是 合 法 的 SQ L 布 尔 表 达 式 。

n t e x t, t e x t 和 im a g e

请 参 阅 本 章 前 面 的 “ Da t a T y p e s”。

N U L L I F

如 果 一 对 表 达 式 相 等 , NUL L I F 函 数 就 返 回 NU L L。 如 果 它 们 不 相 等 , NUL L I F函 数 就 返 回 第 一 个 表 达 式 的 值 。

语 法

N U L L I F ( e x p r e s s i o n , e x p r e s s i o n)

Page 283: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 exp r e s s i o n 可 以 是 常 数 、 列 或 函 数 , 也 可 以 包 含 算 术 运 算 符 、 按 位 运算 符 、 和 字 符 串 运 算 符 。

n u m e r i c

请 参 阅 本 章 前 面 的 “ Da t a T y p e s”。

O B J E C T _ I D

当 给 当 前 数 据 库 中 的 对 象 名 时 , OBJ E C T _ I D 将 返 回 对 象 标 识 号 。语 法

O B J E C T _ I D ( ′ o b j e c t′ )

变 量 obj e c t _ i d 是 对 象 名 。

O B J E C T _ N A M E

当 给 处 当 前 数 据 库 中 的 对 象 名 时 , OBJ E C T _ N A M E 函 数 返 回 对 象 名 。语 法

Page 284: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

O B J E C T _ N A M E( ob jec t_ id )

变 量 obj e c t _ i d 是 对 象 的 标 识 号 。

O B J E C T P R O P E R T Y

O B J E C T P R O P E R T Y 函 数 生 成 数 据 库 对 象 的 大 量 信 息 , 它 返 回 下 述 属 性 值 :Cns t I s C l u s t K e y , C n s t I s C o l u m n , C n s t I s D i s a b l e d , C n s t I s N o n c l u s t K e y ,C n s t I s N o t R e p l , E x e c I s A n s i N u l l s O n , Ex e c I s D e l e t e T r i g g e r ,Ex e c I s I n s e r t T r i g g e r , Ex e c I s Q u o t e d I d e n t O n , Ex e c I s S t a r t u p ,Ex e c I s T r i g g e r D i s a b l e d,Ex e c I s U p d a t e T r i g g e r,Is C h e c k C n s t,Is C o n s t r a i n t,

IsD e f a u l t, Is D e f a u l t C n s t, Is E x e c u t e d, Is E x t e n d e d P r o c, Is F o r e i g n K e y,Is M S S h i p p e d , Is P r i m a r y K e y , IsP r o c e d u r e , Is R e p l P r o c , I s R u l e ,Is S y s t e m T a b l e,Is T a b l e,IsT r i g g e r, IsU n i q u e C n s t,Is U s e r T a b l e,I s V i e w,Own e r I d , Ta b l e D e l e t e T r i g g e r , Ta b l e D e l e t e T r i g g e r C o u n t ,Ta b l e F u l l T e x t K e y C o l u m n , Ta b l e F u l l T e x t C a t a l o g I d ,Ta b l e H a s A c t i v e F u l l t e x t I n d e x, Ta b l e h a s C h e c k C n s t, Ta b l e H a s C l u s t I n d e x,Ta b l e H a s D e f a u l t C n s t , Ta b l e H a s D e l e t e T r i g g e r , Ta b l e H a s F o r e i g n K e y ,Ta b l e H a s F o r e i g n R e f , Ta b l e H a s I d e n t i t y , Ta b l e H a s I n d e x ,Ta b l e H a s I n s e r t T r i g g e r , Ta b l e H a s N o n c l u s t I n d e x , Ta b l e H a s P r i m a r y K e y ,Ta b l e H a s R o w G u i d C o l, Ta b l e H a s T e x t I m a g e, Ta b l e H a s T i m e s t a m p,Ta b l e H a s U n i q u e C n s t , Ta b l e H a s U p d a t e T r i g g e r , Ta b l e I n s e r t T r i g g e r ,

Page 285: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T a b l e I n s e r t T r i g g e r C o u n t , Ta b l e I s P i n n e d , Ta b l e U p d a t e T r i g g e r ,Ta b l e U p d a t e T r i g g e r C o u n t , Tr i g g e r D e l e t e O r d e r , Tr i g g e r I n s e r t O r d e r ,Tr i g g e r U p d a t e O r d e r .

语 法

O B J E C T P R O P E R T Y ( i d , ′ p r o p e r t y′ )

变 量

i d 是 对 象 的 ID。′ pro p e r t y′ 是 有 id 的 对 象 的 返 回 信 息 。 Pro p e r t y 可 以 是 上 述

值 中 的 任 一 个 。

O P E N

O P E N 语 句 与 Tra n s a c t - S Q L 服 务 器 游 标 一 起 使 用 , 以 打 开 该 服 务 器 游 标 。语 法

O P E N { { [ G L O B A L] c u r s o r _ n a m e } | c u r s o r _ v a r i a b l e _ n a m e }

变 量

Page 286: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

G L O B A L G L O B A L 表 示 如 果 局 部 游 标 与 全 局 游 标 同 名 , 就使 用 全 局 游 标 。

cur s o r _ n a m e c u r s o r _ n a m e 是 游 标 名 称 。 如 果 局 部 游 标 与 全局 游 标 同 名 , 就 使 用 全 局 游 标 。 如 果 指 定 了 可选 关 键 字 GLOBA L, 就 使 用 局 部 游 标 。

cur s o r _ v a r i a b l e _ n a m e c u r s o r _ v a r i a b l e _ n a m e 是 游 标 变 量 的 名 称 。

O P E N Q U E R Y

O P E N Q U E R Y 函 数 用 于 查 询 的 FR O M 子 句 中 , 以 替 代 表 名 , 它 也 可 以 是 IN S E R T、U P D A T E 或 D E L E T E 语 句 的 目 标 表 ( 如 果 能 使 用 OL E D B 提 供 商 )。 OPE N Q U E R Y 在 定义 为 连 接 服 务 器 的 OLE D B 数 据 源 上 运 行 通 过 查 询 。 该 连 接 服 务 器 已 由 存 储 过 程sp_ a d d l i n k e d s e r v e r 创 建 。

语 法

O P E N Q U E R Y ( l i nked_se rve r , ′ q u e r y′ )

变 量

l i n k e d _ s e r v e r l i n k e d _ s e r v e r 是 连 接 的 服 务 器 名 。′ qu e r y′ ′ qu e r y′ 是 在 连 接 的 服 务 器 上 执 行 的 查 询 。

示 例

Page 287: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 OPE N Q U E R Y 函 数 的 示 例 :

S E L E C T *F R O M O P E N Q U E R Y ( O r c l _ L i n k e d _ S r v 1 , ′ S E L E C T C o l u m n 1 F R O Md b o . D B A _ T a b l e ′ )

本 例 中 , 选 择 出 Ora c l e 服 务 器 中 的 数 据 。

O P E N R O W S E T

O P E N R O W S E T 函 数 用 于 查 询 的 FR O M 子 句 中 ,以 替 代 表 名 ,它 也 可 以 是 IN S E R T、U P D A T E 或 D E L E T E 语 句 的 目 标 表 ( 如 果 能 使 用 OL E D B 提 供 商 )。 OPE N R O W S E T 传送 连 接 信 息 , 以 便 访 问 OL E D B 数 据 源 上 的 远 程 数 据 。 可 以 用 它 替 代 OPE N Q U E R Y。也 可 以 用 它 替 代 访 问 连 接 服 务 器 中 的 表 格 ,作 为 用 OL E D B 访 问 远 程 数 据 的 ad h o c方 式 。

语 法

O P E N R O W S E T (′ p r o v i d e r _ n a m e′{′ d a t a s o u r c e′ ;′ use r_ id ′ ;′ p a s s w o r d ′| ′ p r o v i d e r _ s t r i n g′} ,

Page 288: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

{[ c a t a l o g .][ s c h e m a .] o b j e c t| ′ q u e r y′} )

变 量

′ pro v i d e r _ n a m e′ pr o v i d e r 是 注 册 表 中 OL E D B 提 供 商 的 友 好名 称 。

′ dat a s o u r c e′ ′ dat a s o u r c e′ 是 OLE D B 数 据 源 的 字 母 串 。提 供 商 用 该 串 定 位 数 据 库 或 文 件 。

′ us e r _ i d′ ′ us e r _ i d′ 是 发 送 给 OL E D B 提 供 商 的 用 户名 。

′ pass w o r d′ pa s s w o r d 是 为 用 户 准 备 的 , 并 传 送 给 OL E D B提 供 商 。

′ pro v i d e r _ s t r i n g′ pr o v i d e r _ s t r i n g 是 专 门 用 于 提 供 商 的 , 它在 DBP R O P _ I N I T _ P R O V I D E R S T R I N G 属 性 中 给出 , 以 初 始 化 OLE D B 提 供 商 。

Ca t a l o g c a t a l o g 是 对 象 所 在 的 目 录 或 数 据 库 名 。Sc h e m a s c h e m a 是 模 式 名 或 对 象 的 拥 有 者 。Ob j e c t o b j e c t 是 对 象 名 。′ qu e r y′ qu e r y 是 提 供 商 执 行 的 通 过 查 询 。 在 提 供 商

Page 289: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

没 有 通 过 表 名 显 示 列 表 数 据 , 而 只 通 过 命 令语 言 显 示 该 数 据 时 , 使 用 通 过 查 询 是 很 有 用的 。

示 例下 面 是 OPE N R O W S E T 函 数 的 示 例 :

S E L E C T t 1 . *F R O M O P E N R O W S E T (′ M S D A S Q L′ ,′ D R I V E R = { S Q L S e r v e r } ; S E R V E R = s e r v e r 1 ; U I D = s a ; P W D = s e r v e r 1 p w d′ ,d b 1 . d b o . M y T a b l e ) A S t 1O R D E R B Y t 1 . C o l u m n 1 , t 1 . C o l u m n 2G O

本 例 中 , OD B C 和 SQ L S e r v e r 驱 动 程 序 的 OLE D B 提 供 商 发 送 了 运 行 远 程 服务 器 的 查 询 。

O R

O R 检 查 两 个 条 件 , 如 果 其 中 一 个 条 件 为 TRUE, 就 返 回 TRUE, 先 运 算 AN D,但 括 号 的 位 置 可 控 制 运 算 的 顺 序 。

语 法

Page 290: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

b o o l e a n _ e x p r e s s i o n O R b o o l e a n _ e x p r e s s i o n变 量 boo l e a n _ e x p r e s s i o n 是 任 一 合 法 的 SQL 表 达 式 , 其 值 为 TR U E, FA L S E

或 U N K N O W N。

O R D E R B Y

O R D E R B Y 确 定 SEL E C T 语 句 中 的 排 列 顺 序 。

P A R S E N A M E

P A R S E N A M E 返 回 一 个 对 象 的 对 象 名 , 拥 有 者 的 名 称 , 数 据 库 名 和 服 务 器 名 。但 不 通 知 用 户 该 对 象 是 否 存 在 。

语 法

P A R S E N A M E( ′ o b j e c t _ n a m e′ , o b j e c t _ p i e c e })

变 量

′ obj e c t _ n a m e′ ob j e c t _ n a m e 是 对 象 名 , 可 以 限 定 它 。obj e c t _ p i e c e o b j e c t _ p i e c e 是 要 返 回 的 对 象 部 分 。 该 变 量 的

合 法 值 为 :

Page 291: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

1 = 对 象 名 , 2=拥 有 者 的 名 称 , 3= 数 据 库 名 , 4=服 务 器 名 。

示 例下 面 是 PAR S E N A M E 的 函 数 示 例 :

S E L E C T P A R S E N A M E (′ m y d b . . M y T a b l e ′ , 2 ) A S ′ O w n e r N a m e′

本 例 中 , 解 析 出 数 据 库 my d b 的 表 My T a b l e 的 拥 有 者 名 称 , 并 返 回 NU L L。

P A T I N D E X

P A T I N D E X 函 数 返 回 表 达 式 中 遇 到 的 第 一 个 模 式 的 起 始 位 置 , 如 果 表 达 式 中不 存 在 模 式 , 就 返 回 0。

语 法P A T I N D E X( ′ % p a t t e r n % ′ , e x p r e s s i o n)变 量

p a t t e r n p a t t e r n 是 可 以 包 含 通 配 符 的 字 符 串 。Exp r e s s i o n e x p r e s s i o n 是 一 个 字 符 串 , 通 常 它 是 要 搜 索 的

列 名 。示 例

Page 292: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 PAT I N D E X 函 数 的 示 例 :S E L E C T P A T I N D E X (′ % M S % ′ , C o l u m n 1 )F R O M M y T a b l eW H E R E M y _ i d = 0 6 2 5 5 4

P E R M I S S I O N S

P E R M I S S I O N S 函 数 返 回 的 32 位 位 图 可 显 示 当 前 对 话 中 用 户 的 语 句 、 对 象 、列 许 可 。 存 储 过 程 sp_ h e l p p r o t e c t 也 可 以 用 来 替 代 PER M I S S I O N S 函 数 。

低 16 位 是 当 前 对 话 中 用 户 的 安 全 帐 户 许 可 。 例 如 , 返 回 值 为 12( 没 有 变 量obj e c t i d)表 示 当 前 用 户 拥 有 执 行 CRE A T E P R O C E D U R E( 小 数 位 4)和 CR E A T E V I E W( 小 数 位 8) 语 句 的 许 可 。

高 16 位 是 当 前 对 话 中 的 用 户 可 以 授 予 其 他 用 户 的 许 可 。 高 16 位 与 低 16 位的 内 涵 完 全 相 同 , 但 要 乘 以 65536。

返 回 的 语 句 许 可 位 图 值 是 小 数 、 位 和 许 可 ; 1=0 x 1 = C R E A T ED A T A B A S E ; 2 = 0 x 2 = C R E A T E T A B L E , 4 = 0 x 4 = C R E A T E P R O C E D U R E , 8 = 0 x 8 = C R E A T EV I E W , 1 6 = 0 x 1 0 = C R E A T E R U L E , 3 2 = 0 x 2 0 = C R E A T E D E F A U L T , 6 4 = 0 x 4 0 = B A C K U PD A T A B A S E , 1 2 8 = 0 x 8 0 = B A C K U P L O G , 2 5 6 = 0 x 1 0 0 = B A C K U P T A B L E .

当 提 供 了 obj e c t i d 时 , 返 回 的 对 象 许 可 位 图 值 是 小 数 、 位 和 许 可 ;1=0 x 1 = S E L E C T A L L , 2= 0 x 2 = U P D A T E A L L , 4= 0 x 4 = R E F E R E N C E SA L L , 8 = 0 x 8 = I N S E R T , 1 6 = 0 x 1 0 = D E L E T E , 3 2 = 0 x 2 0 = E X E C U T E ( 存 储 程序 ),4 0 9 6 = 0 x 1 0 0 0 = S E L E C T A N Y , 8 1 9 2 = 0 x 2 0 0 0 = U P D A T E

Page 293: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

A N Y , 1 6 3 8 4 = 0 x 4 0 0 0 = R E F E R E N C E S A N Y .当 提 供 了 obj e c t i d 和 列 时 , 返 回 的 列 对 象 许 可 位 图 值 是 小 数 、 位 和 许 可 ;

1=0 x 1 = S E L E C T , 2 = 0 x 2 = U P D A T E , 4 = 0 x 4 = R E F E R E N C E S .如 果 不 存 在 ob j e c t i d 和 列 , 就 返 回 NU L L。语 法P E R M I S S I O N S ([ objec t id [ , ′ c o l u m n′ ]] )变 量

o b j e c t i d 为 当 前 数 据 库 中 对 象 的 OBJ E C T _ I D。 如 果 没 有 提供 Obj e c t i d 语 句 , 许 可 权 返 回 给 当 前 用 户 。

′ co l u m n′ 可 选 的 要 返 回 许 可 权 的 列 名 。示 例下 面 是 PER M I S S I O N S 函 数 的 示 例 :

I F P E R M I S S I O N S ( ) & 1 = 1C R E A T E T A B L E D B A _ T a b l e ( C o l u m n 1 I N T , C o l u m n 2 V A R C H A R )E L S EG O T O E r r o r R t n

Page 294: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

P I

P I 函 数 返 回 pi 的 值 3.1 4 1 5 9 2 6 5 3 5 8 9 7 9。语 法

P I( )

示 例下 面 是 PI 函 数 的 示 例 :

S E L E C T P I( )

本 例 中 , 返 回 pi 的 值 3. 1 4 1 5 9 2 6 5 3 5 8 9 7 9。

P O W E R

函 数 返 回 给 定 数 值 表 达 式 的 幂 。语 法

P O W E R ( n u m e r i c _ e x p r e s s i o n, y)

Page 295: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

n u m e r i c _ e x p r e s s i o n n u m e r i c _ e x p r e s s i o n 的 数 据 类 型 可 以 是 小 数 、 浮点 、 整 型 、 货 币 、 数 值 、 实 型 、 短 整 型 、 短 货 币或 微 整 型 。

y 表 达 式 的 幂 指 数 。

P R I N T

P R I N T 语 句 将 用 户 定 义 的 信 息 返 回 到 客 户 机 , 该 信 息 最 多 可 以 有 10 2 4 个 字符 。

语 法

P R I N T { ′ a n y A S C I I t e x t ′ |@ l o c a l _ v a r i a b l e | @ @ g l o b a l _ v a r i a b l e |s t r i n g _ e x p r }

变 量′ any A S C I I t e x t′ an y A S C I I t e x t 是 一 字 符 串 。@lo c a l _ v a r i a b l e @ l o c a l _ v a r i a b l e 是 局 部 变 量 。@@g l o b a l _ v a r i a b l e @ @ g l o b a l _ v a r i a b l e 是 返 回 字 符 串 的 全 局 变 量 。str i n g _ e x p r s t r i n g _ e x p r 是 返 回 字 符 串 的 表 达 式 。

Page 296: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

Q U O T E N A M E

Q U O T E N A M E 函 数 返 回 Un i c o d e 字 符 串 , 此 Uni c o d e 字 符 串 将 字 符 串 变 量 转 换成 有 效 的 引 用 标 识 符 。

语 法

Q U O T E N A M E (′ c h a r a c t e r _ s t r i n g′ [ ,′ q u o t e _ c h a r a c t e r′ ] )

变 量

′ cha r a c t e r _ s t r i n g′ ch a r a c t e r _ s t r i n g 是 一 Un i c o d e 字 符 串 。′ quo t e _ c h a r a c t e r′ qu o t e _ c h a r a c t e r 是 用 作 分 隔 符 的 字 符 串 。 该

变 量 的 可 能 值 为 单 引 号 , 左 括 号 , 右 括 号 或 双引 号 。

R A D I A N S

R A D I A N S 为 一 函 数 , 在 提 供 以 度 表 示 的 数 字 表 达 式 时 , RAD I A N S 返 回 其 弧 度值 。

语 法

Page 297: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R A D I A N S ( n u m e r i c _ e x p r e s s i o n )

变 量 num e r i c _ e x p r e s s i o n 可 以 是 小 数 、 浮 点 数 、 整 型 数 、 货 币 、 数 字 、 实数 、 短 整 型 数 、 短 整 型 数 , 小 货 币 或 微 短 整 型 数 等 。

R A I S E R R O R

R A I S E R R O R 是 一 个 函 数 , 它 返 回 用 户 定 义 的 错 误 信 息 , 并 设 置 系 统 标 志 以 指明 出 现 的 错 误 。 此 信 息 可 能 是 来 自 sys m e s s a g e s 系 统 表 的 错 误 , 也 可 能 是 带 有用 户 定 义 的 严 重 级 别 和 状 态 的 函 数 内 部 的 错 误 。 如 果 错 误 在 运 行 期 间 出 现 , 信息 就 发 送 到 客 户 机 上 。

如 果 使 用 了 sys m e s s a g e s 系 统 表 , 并 使 用 变 量 ms g _ s t r 的 格 式 选 项 定 义 信息 , 那 么 变 量 就 传 送 给 msg _ i d 。 系 统 存 储 过 程 sp_ a d d m e s s a g e 和sp _ d r o p m e s s a g e, 用 于 建 立 或 删 除 用 户 定 义 的 错 误 信 息 。

@ @ E R R O R 存 储 最 近 产 生 的 错 误 号 , 缺 省 状 态 下 设 置 为 0, 严 重 级 别 为 1到 1 0。语 法

R A I S E R R O R ( { m s g _ i d | m s g _ s t r } { , sever i ty , s ta te }[ , a r g u m e n t[ ,... n ]] )[ W I T H o p t i o n ]

Page 298: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

m s g _ i d m s g _ i d 是 用 户 定 义 的 保 存 在 sys m e s s a g e s 表 中 的错 误 信 息 。 应 使 用 户 定 义 的 错 误 信 息 的 错 误 号大 于 50 , 0 0 0。A d h o c 信 息 引 发 错 误 50 , 0 0 0。ms g _ i d的 最 大 值 为 2,1 4 7 , 4 8 3 , 6 4 7。

m s g _ s t r m s g _ s t r 是 最 多 可 达 8000 个 字 符 的 ad h o c 信 息 ,标 准 信 息 ID 为 14 , 0 0 0。 字 符 % 表 示 这 是 ad h o c信 息 , 格 式 化 为 :%[[ fl a g][ wi d t h][ pr e c i s i o n][ {h| l}]]typef l a g =对 不 用 单 引 号 的 信 息 , 定 义 其 间 距 和 调 整 的代 码 。′ -′ =域 内 的 左 边 调 整 。+ =表 示 带 有 正 或 负 号 的 值 。0=零 填 充 字 符 数 据 类 型 。#=非 十 进 制 数 的 词 根 前 缀 。′ ′ =空 格 插 入 正 值 , 使 用 + 标 志 时 可 以 忽 略 。Wi d t h =整 数 和 最 小 宽 度 , *表 示 由 精 度 定 义 宽 度 。Pre c i s s i o n = 字 符 的 最 大 数 或 小 数 的 最 小 位 数 , *表 示 由 变 量 定 义 精 度 。{h| 1} t y p e =修 改 量 (h 表 示 短 整 型 数 , 或 1 表 示 长整 型 数 )用 数 字 类 型 定 义 数 字 变 量 的 容 量 。

Page 299: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

类 型 有 :D i =带 符 号 的 整 数:u =无 符 号 的 整 数:o =无 符 号 的 八 进 制 数:x 或 X=无 符 号 的 十 六 进 制 数:P =指 针

se v e r i t y s e v e r i t y 是 此 信 息 的 用 户 定 义 的 严 重 等 级 。1- 1 8 :所 有 用 户19 - 2 5: 系 统 管 理 员 且 必 须 用 WI T H L O G2 0 - 2 5 : 中 断 客 户 机 连 接 的 致 命 错 误 , 且 在 SQLS e r v e r 错 误 记 录 中 和 NT 事 件 记 录 中 注 册 。

st a t e s t a t e 是 表 示 错 误 状 态 的 从 1 到 12 7 的 任 意 整 数 。ar g u m e n t a r g u m e n t 表 示 在 msg _ s t r 中 变 量 的 替 代 参 数 , 最

大 值 为 20, 参 数 可 以 局 部 变 量 或 数 据 类 型 为 整 数1, 整 数 2、 整 数 4、 字 符 、 可 变 字 符 、 二 进 制 或可 变 二 进 制 的 常 数 。

Op t i o n o p t i o n 表 示 错 误 的 定 制 选 项 。LO G: 在 服 务 器 错 误 记 录 和 事 件 记 录 中 记 录 错 误 ,只 能 由 系 统 管 理 员 来 使 用 。NO W A I T: 信 息 立 即 送 至 客 户 机 。SE T E R R O R: 不 管 严 重 等 级 是 多 少 , @@e r r o r 都 是 adh o c 信 息 的 ms g _ i d 或 5 0 0 0 0。

Page 300: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 两 个 RAIS E R R O R 函 数 的 示 例 :

R A I S E R R O R ( ′ C u s t o m e r i d 4 e x p e c t s t h e d i s t r i c t o f 4 4 .′ , 1 6 , - 1 )

R A I S E R R O R ( ′ T h e d i s t r i c t f o r c u s t o m e r _ i d : % d s h o u l d b e

b e t w e e n % d a n d % d .′ ,16 , -1 ,@ @ c u s t o m e r _ i d , @ @ m in_d i s t ,@ @ m a x _ d i s t )

第 一 个 例 子 中 , 建 立 了 简 单 的 信 息 。 第 二 RAI S E R R O R 动 态 建 立 信 息 。

R A N D

R A N D 返 回 0~ 1 之 间 的 随 机 浮 点 值 。语 法

R A N D ([ s e e d ] )变 量 se e d 决 定 起 始 值 , 它 可 以 为 整 型 数 、 短 整 型 数 、 微 短 整 型 数 据 类 型 。

Page 301: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E A D T E X T

R E A D T E X T 返 回 文 本 或 图 像 列 中 的 文 本 、 ntext 或 图 像 值 , 它 从 规 定 的 偏 置开 始 , 返 回 规 定 字 节 数 。 可 以 用 TE X T P T R 函 数 获 取 表 格 的 有 效 tex t _ p t r 值 。 参阅 本 章 后 面 的 “ TEX T P T R” 和 “ SET T E X T S I Z E”。

语 法

R E A D T E X T { t a b l e . c o l u m n t e x t _ p t r o f f s e t s i z e } [ H O L D L O C K ]

变 量

t a b l e . c o l u m n 表 格 和 列 的 名 称 。te x t _ p t r t e x t _ p t r 是 二 进 制 (1 6 )的 有 效 文 本 指 针 。Of f s e t o f f s e t 在 放 入 文 本 或 图 像 数 据 前 要 忽 略 的 字 符 数( 字

节 )。 Nt e x t 数 据 类 型 必 须 以 字 符 方 式 给 出 ( 每 个 数据 两 个 字 节 ), 文 本 或 图 像 数 据 类 型 必 须 以 字 节 的 方式 给 出 。

Si z e s i z e 是 要 读 取 的 数 据 的 字 节 数 ,其 中 0 表 示 数 据 为 4K字 节 。

HO L D L O C K 事 务 处 理 结 束 前 锁 定 文 字 值 , 这 些 文 字 值 可 以 读 取 ,但 不 能 改 变 。

Page 302: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

示 例下 面 是 REA D T E X T 函 数 的 示 例 :

D E C L A R E @ v a r b i n a r y ( 1 6 )S E L E C T @ p n t r = T E X T P T R ( M y T a b l e )R E A D T E X T M y T a b l e . C o l u m n 1 @ p n t r 2 5 5

本 例 读 取 出 My T a b l e 中 C o l u m n 1 的 第 3 到 第 57 个 字 符 。

实 型

参 阅 本 章 前 面 的 “ Dat a T y p e”。

R E C O N F I G U R E

R E C O N F I G U R E 更 新 当 前 配 置 , 对 于 某 些 配 置 选 项 , REC O N F I G U R E 更 新 由sp_ c o n f i g u r e 修 改 的 当 前 运 行 值 。 对 于 某 些 配 置 选 项 , Mic r o s o f t S Q L S e r v e r必 须 中 止 再 启 动 , 才 能 更 新 它 们 的 当 前 运 行 值 。

语 法

R E C O N F I G U R E [ W I T H O V E R R I D E]

Page 303: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

R E C O N F I G U R E R E C O N F I G U R E 更 新 当 前 配 置 , 对 于 某 些 配 置 选 项 ,REC O N F I G U R E 更 新 由 sp_ c o n f i g u r e 修 改 的 当 前 运行 值 。 它 还 检 查 无 效 值 和 坏 值 。

WIT H O V E R R I D E W I T H O V E R R I D E 禁 止 对 允 许 的 更 新 , 恢 复 间 隔 或时 间 段 配 置 选 项 的 检 查 , 并 用 sp_c o n f i g u r e 提供 的 值 重 新 配 置 。

示 例下 面 是 REC O N F I G U R E W I T H O V E R R I D E 语 句 的 示 例 :

E X E C s p _ c o n f i g u r e ′ a l l o w u p d a t e s′ , 1R E C O N F I G U R E W I T H O V E R R I D EG O本 例 中 , 重 新 配 置 服 务 器 , 以 允 许 更 新 系 统 表 。 即 使 该 值 为 真 , SQ L S e r v e r

也 不 通 知 用 户 不 推 荐 该 值 。

R E P L A C E

R E P L A C E 用 串 表 达 式 3 取 代 串 表 达 式 1 中 的 串 表 达 式 2。语 法

Page 304: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E P L A C E( ′ s t r i n g _ e x p r e s s i o n 1 ′ , ′ s t r i n g _ e x p r e s s i o n 2′ ,′ s t r i n g _ e x p r e s s i o n 3 ′ )

变 量

′ str i n g _ e x p r e s s i o n 1′ ′ str i n g _ e x p r e s s i o n 1 ′ 是 在 其 中 搜 索str i n g _ e x p r e s s i o n 2 的 串 表 达 式 。 可 以 使 用字 符 或 二 进 制 数 据 。

′ str i n g _ e x p r e s s i o n 2′ st r i n g _ e x p r e s s i o n 2 是 在st r i n g _ e x p r e s s i o n 1 中 查 找 的 串 表 达 式 , 也是 用 str i n g _ e x p r e s s i o n 3 取 代 的 串 表 达 式 。

′ str i n g _ e x p r e s s i o n 3′ st r i n g _ e x p r e s s i o n 3 是 取 代str i n g _ e x p r e s s i o n 2 的 新 串 表 达 式 。

示 例下 面 是 REP L A C E 的 示 例 :S E L E C T R E P L A C E ( ′ M y D o g′ , ′ D o g′ , ′ C a t′ )本 例 中 , 用 Ca t 取 代 了 My D o g 中 的 Do g, 结 果 为 My C a t。

R E P L I C A T E

R E P L I C A T E 将 字 符 表 达 式 复 制 用 户 定 义 的 次 数 。

Page 305: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

R E P L I C A T E ( c h a r a c t e r _ e x p r e s s i o n, i n t e g e r _ e x p r e s s i o n )

变 量

c h a r a c t e r _ e x p r e s s i o n c h a r a c t e r _ e x p r e s s i o n 是 字 符 或 二 进 制 常数 , 变 量 或 列 。

int e g e r _ e x p r e s s i o n i n t e g e r _ e x p r e s s i o n 是 一 个 正 整 数 , 表 示复 制 字 符 表 达 式 的 次 数 。

R E S T O R E

R E S T O R E 语 句 恢 复 数 据 库 、 记 录 或 数 据 库 文 件 , 可 以 进 行 以 下 类 型 的 恢 复 :备 用 服 务 器 的 恢 复 、 整 个 数 据 库 的 恢 复 , 差 异 数 据 库 的 恢 复 ( 差 异 备 份 是 用RES T O R E D A T A B A S E 语 句 恢 复 的 )、 事 务 处 理 记 录 的 恢 复 、 个 别 文 件 或 文 件 组 的恢 复 。 文 件 或 文 件 组 可 以 从 文 件 或 文 件 组 备 份 中 恢 复 , 或 者 从 整 个 数 据 库 备 份中 恢 复 。 恢 复 文 件 或 文 件 组 时 , 必 须 使 用 事 务 处 理 记 录 。

只 有 RES T O R E D A T A B A S E 影 响 返 回 数 据 库 备 份 设 置 的 自 动 关 闭 、 自 动 压 缩 、自 动 剪 切 、 只 有 db o 使 用 、 只 读 、 单 用 户 、 选 择 / 成 批 复 制 或 检 测 已 拆 分 下 的页 面 等 设 置 。

语 法

Page 306: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

恢 复 整 个 数 据 库 的 语 法 :

R E S T O R E D A T A B A S E { d a t a b a s e _ n a m e | @ d a t a b a s e _ n a m e _ v a r }[ F R O M < b a c k u p _ d e v i c e > [ , . . . n ]][ W I T H[ D B O _ O N L Y ][[ ,] F I L E = f i l e _ n u m b e r ][[ ,] M E D I A N A M E = { m e d i a _ n a m e | @ m e d i a _ n a m e _ v a r i a b l e } ][[ ,] M O V E ′ l o g i c a l _ f i l e _ n a m e′ T O ′ o p e r a t i n g _ s y s t e m _ f i l e _ n a m e′ ][ ,...p][[ ,] { N O R E C O V E R Y | R E C O V E R Y | S T A N D B Y = u n d o _ f i l e _ n a m e

}][[ ,] { N O U N L O A D | U N L O A D } ][[ ,] R E P L A C E][[ ,] R E S T A R T ][[ ,] S T A T S [ = p e r c e n t a g e ]]]

恢 复 特 定 文 件 或 文 件 组 的 语 法 :

R E S T O R E D A T A B A S E { d a t a b a s e _ n a m e | @ d a t a b a s e _ n a m e _ v a r }

Page 307: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< f i l e _ o r _ f i l e g r o u p >[ ,... m ][ F R O M < b a c k u p _ d e v i c e > [ , . . . n ]][ W I T H[ D B O _ O N L Y ][[ ,] F I L E = f i l e _ n u m b e r ][[ ,] M E D I A N A M E = { m e d i a _ n a m e | @ m e d i a _ n a m e _ v a r i a b l e }][[ ,] ( N O R E C O V E R Y | R E C O V E R Y | S T A N D B Y = u n d o _ f i l e _ n a m e }][[ ,] { N O U N L O A D | U N L O A D } ][[ ,] R E P L A C E][[ ,] R E S T A R T ][[ ,] S T A T S [ = p e r c e n t a g e ]]]

恢 复 事 务 处 理 记 录 的 语 法 :

R E S T O R E L O G{ d a t a b a s e _ n a m e | @ d a t a b a s e _ n a m e _ v a r }[ F R O M < b a c k u p _ d e v i c e > [ ,... n ]][ W I T H[ D B O _ O N L Y ][[ ,] F I L E = f i l e _ n u m b e r ][[ ,] M E D I A N A M E = { m e d i a _ n a m e | @ m e d i a _ n a m e _ v a r i a b l e } ][[ ,] M O V E ′ l o g i c a l _ f i l e _ n a m e′ T O ′ o p e r a t i n g _ s y s t e m _ f i l e _ n a m e′ ]

Page 308: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ ,... p ][[ ,] { N O R E C O V E R Y | R E C O V E R Y | S T A N D B Y = u n d o _ f i l e _ n a m e } ][[ ,] { N O U N L O A D | U N L O A D } ][[ ,] R E S T A R T ][[ ,] S T A T S [ = p e r c e n t a g e ]][[ ,] S T O P A T = { d a t a _ t i m e | @ d a t e _ t i m e _ v a r }]]

< b a c k u p _ d e v i c e > : : ={{ ′ b a c k u p _ d e v i c e _ n a m e′ | @ b a c k u p _ d e v i c e _ n a m e _ v a r }| { D I S K | T A P E | P I P E } =

{ ′ t e m p _ b a c k u p _ d e v i c e′ | @ t e m p _ b a c k u p _ d e v i c e _ v a r }}

< f i l e _ o r _ f i l e g r o u p > : : ={F I L E = { l o g i c a l _ f i l e _ n a m e | @ l o g i c a l _ f i l e _ n a m e _ v a r }|F I L E G R O U P = { l o g i c a l _ f i l e g r o u p _ n a m e | @ l o g i c a l _ f i l e g r o u p _ n a m e _ v a r }}变 量

Page 309: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D A T A B A S E 如 果 使 用 DATA B A S E, 就 通 知 Mic r o s o f t S Q L S e r v e r恢 复 完 整 的 数 据 库 。 也 可 以 和 一 系 列 文 件 或 文 件 组一 起 使 用 DAT A B A S E, 限 制 将 数 据 库 恢 复 到 指 定 的 文件 或 文 件 组 。 现 在 , Mic r o s o f t S Q L S e r v e r 恢 复 备份 文 件 时 , 只 备 份 足 以 创 建 带 有 完 整 事 务 处 理 的 数据 库 的 记 录 。

{da t a b a s e _ n a m e |@d a t a b a s e _ n a m e _ v a r }

d a t a b a s e _ n a m e 是 与 恢 复 程 序 有 关 的 数 据 库 的 名 称 。可 以 用 变 量 或 常 数 串 的 形 式 传 输 数 据 库 名 称 。

FR O M F R O M 限 定 从 哪 个 备 份 设 备 处 恢 复 。 忽 略 FR O M 子 句可 用 于 恢 复 用 NOR E C O V E R Y 选 项 恢 复 的 非 可 疑 数 据库 , 或 者 用 于 转 换 至 备 用 服 务 器 , 如 果 省 去 FR O M 子句 ,必 须 给 出 NOR E C O V E R Y,RE C O V E R Y,或 者 ST A N D B Y。

<b a c k u p _ d e v i c e > b a c k u p _ d e v i c e 是 sp - a d d u m p d e v i c e 建 立 的 备 份 设备 的 逻 辑 名 称 。

{D I S K | TA P E |PI P E } = ′te m p _ b a c k u p _ d e v i c e′ |@t e m p _ b a c k u p _ d e v i c e _v a r

允 许 从 指 定 的 磁 盘 、 磁 带 或 管 道 设 备 中 恢 复 备 份 。DIS K = ′ c: \ ms s q l 7 \ ba c k u p \ my b a c k . d a t ′ 或

TA P E =′ \ \ .\ TAPE0 ′ 。 管 道 类 型 的 设 备 可 用 通 过第 三 方 厂 商 使 用 的 客 户 应 用 程 序 来 命 名 管 道 。

n n 表 示 前 面 的 项 可 以 重 复 。DB O _ O N L Y D B O _ O N L Y 表 示 只 有 Dat a b a s e O w n e r 可 以 访 问 恢 复

Page 310: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

的 数 据 库 。FIL E = f i l e _ n u m b e r f i l e _ n u m b e r 是 要 恢 复 为 显 示 在 介 质 上 的 备 份 集 的

数 目 。MED I A N A M E = { m e d i a _ n a me |@m e d i a _ n a m e _ v a r i a b l e}

M E D I A N A M E 为 整 个 备 份 集 的 介 质 名 称 。 它 必 须 与 备份 卷 中 的 介 质 名 称 相 符 。 在 BAC K U P 和 R E S T O R E 操 作中 使 用 介 质 名 称 是 一 种 可 靠 的 检 查 。

MO V E ′lo g i c a l _ f i l e _ n a m e ′T O ′op e r a t i n g _ s y s t e m _ f i le _ n a m e′

M O V E 决 定 将 log i c a l _ f i l e _ n a m e 移 至op e r a t i n g _ s y s t e m _ f i l e _ n a m e 中 , 缺 省 值 为 将log i c a l _ f i l e _ n a m e 恢 复 至 其 开 始 位 置 。 可 以 用 此变 量 将 数 据 库 重 新 定 位 到 另 一 个 服 务 器 上 。

p p 表 示 可 以 列 出 多 个 MO V E 语 句 。NOR E C O V E R Y 不 重 新 运 行 未 提 交 的 事 务 处 理 。 必 须 将 NOR E C O V E R Y

或 RE C O V E R Y 指 定 为 缺 省 值 。 恢 复 数 据 库 和 事 务 处 理记 录 时 , 除 最 后 一 个 REST O R E 以 外 都 使 用NOR E C O V E R Y。 当 所 有 的 事 务 处 理 记 录 都 没 有 应 用 时 ,NOR E C O V E R Y 使 数 据 库 不 能 使 用 。 如 果 使 用 ST A N D B Y,在 只 读 模 式 中 能 使 用 数 据 库 。 REC O V E R Y 为 缺 省 值 。

RE C O V E R Y 重 新 运 行 未 提 交 的 事 务 处 理 , 使 数 据 库 可 用 。 当 另一 个 事 务 处 理 记 录 应 用 于 数 据 库 时 , 不 应 指 定RE C O V E R Y。

Page 311: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S T A N D B Y = u n d o _ f i l e _ n am e

这 是 存 储 数 据 以 撤 消 恢 复 影 响 的 文 件 名 。 与NOR E C O V E R Y 不 同 , 可 以 查 看 事 务 处 理 记 录 恢 复 之 间的 数 据 库 。 如 果 文 件 不 在 操 作 系 统 上 , 就 建 立 文 件 。如 果 文 件 存 在 , 就 覆 盖 文 件 。

NO U N L O A D N O U N L O A D 表 示 恢 复 以 后 , 磁 带 不 会 自 动 从 磁 带 驱 动器 上 卸 载 。 该 设 置 一 直 保 持 此 状 态 , 直 到 恢 复 指 令中 发 出 UN L O A D 改 变 该 设 置 为 止 。

UN L O A D 此 变 量 决 定 恢 复 完 成 以 后 , 磁 带 将 自 动 倒 带 并 卸 载 。这 是 对 磁 带 驱 动 器 的 缺 省 操 作 , 设 置 一 直 保 持 此 状态 , 直 到 恢 复 指 令 中 发 出 NOU N L O A D 改 变 该 设 置 为止 。

RE P L A C E R E P L A C E 表 示 SQ L S e r v e r 将 删 除 数 据 库 , 并 根 据 备份 集 规 范 重 新 建 立 数 据 库 。 如 果 不 使 用 REP L A C E 选项 , 下 列 情 况 下 不 恢 复 数 据 库 :数 据 库 已 经 存 在 于 服 务 器 中 — — 没 有 REP L A C E, 不会 进 行 恢 复 。数 据 库 名 称 与 备 份 集 中 的 数 据 库 名 称 不 相 同 — — 没有 REP L A C E, 不 会 进 行 恢 复 。数 据 库 中 的 文 件 集 合 与 备 份 集 中 包 含 的 数 据 库 文 件集 不 一 致 — — 没 有 REPL A C E, 不 会 进 行 恢 复 。恢 复 过 程 中 Mic r o s o f t S Q L S e r v e r 不 分 辨 文 件 容 量的 差 别 , 进 行 恢 复 时 , 也 不 检 查 文 件 容 量 的 差 别 。

Page 312: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E S T A R T R E S T A R T 是 中 断 时 允 许 重 新 开 始 恢 复 。 要 重 新 开 始恢 复 , 重 复 RES T O R E 指 令 并 指 定 RES T A R T 选 项 。 但是 要 注 意 , 该 选 项 只 能 用 于 从 磁 带 介 质 中 恢 复 , 以及 通 过 多 个 介 质 卷 写 入 的 恢 复 。

ST A T S[ =p e r c e n t a g e] 如 果 指 定 STATS , 将 显 示 完 成 的 百 分 比 统 计 数 字 。如 果 不 提 供 STA T S, 缺 省 值 为 10%。

<f i l e _ o r _ f i l e g r o u p > 当 数 据 库 的 容 量 太 大 , 从 性 能 上 讲 不 适 于 全 集 数 据库 备 份 时 , 可 使 用 此 变 量 。 此 变 量 可 以 是 一 个 文 件或 多 个 文 件 , 也 可 以 是 一 个 文 件 组 或 者 多 个 文 件 组 。

FIL E = { l o g i c a l _ f i l e _ na m e |@l o g i c a l _ f i l e _ n a m e _ va r }

F I L E 定 义 要 包 含 在 数 据 库 恢 复 的 文 件 。

FIL E G R O U P = { l o g i c a l _ fi l e g r o u p _ n a m e |@l o g i c a l _ f i l e g r o u p _ na m e _ v a r }

F I L E G R O U P 定 义 要 包 括 在 数 据 库 恢 复 中 的 文 件 组 。最 后 一 个 文 件 或 文 件 组 的 恢 复 操 作 将 文 件 向 前 滚 动到 数 据 库 的 其 余 文 件 处 时 , 必 须 立 即 将 记 录 应 用 到数 据 库 文 件 上 。 如 果 备 份 以 后 文 件 没 有 修 改 , 不 必使 用 记 录 , 如 果 最 后 一 次 备 份 这 些 文 件 后 , 在 文 件组 上 建 立 了 索 引 , 就 可 能 需 要 多 个 文 件 组 。

m m 表 示 一 个 RES T O R E 语 句 中 可 以 使 用 多 个 文 件 和 文件 组 。

LO G 只 恢 复 事 务 处 理 记 录 的 备 份 。 要 使 用 多 个 事 务 处 理

Page 313: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

记 录 , 除 最 后 一 个 记 录 的 恢 复 以 外 , 都 必 须 使 用NOR E C O V E R Y 变 量 。

ST O P A T = d a t e _ t i m e |@d a t a _ t i m e _ v a r

S T O P A T 控 制 停 止 恢 复 的 准 确 日 期 和 时 间 , 只 有 在ST O P A T 日 期 和 时 间 以 前 提 交 的 事 务 处 理 能 恢 复 到 数据 库 中 。

示 例下 面 是 用 文 件 、 文 件 组 和 事 务 处 理 记 录 恢 复 数 据 库 的 示 例 :

R E S T O R E D A T A B A S E M y D BF I L E = ′ M y D B _ d a t a _ 1′ ,F I L E = ′ M y D B _ d a t a _ 2′ ,F I L E G R O U P = ′ M y _ f i l e g r o u p′F R O M M y D B _ 1W I T H N O R E C O V E R YG OR E S T O R E L O G M y D BF R O M M y D B L o g 1G O

本 例 中 , 通 过 恢 复 MyDB 数 据 库 的 文 件 、 文 件 组 和 记 录 恢 复 了 数 据 库 。示 例

Page 314: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 恢 复 整 个 数 据 库 和 差 异 备 份 的 示 例 :

R E S T O R E D A T A B A S E M y D BF R O M M y D B _ 1W I T H N O R E C O V E R YG OR E S T O R E D A T A B A S E M y D BF R O M M y D B _ 1W I T H F I L E = 2G O

本 例 中 , 恢 复 了 整 个 数 据 库 和 差 异 数 据 库 。 差 异 数 据 库 作 为 文 件 2 放 在 备份 文 件 中 。

示 例下 面 是 恢 复 整 个 数 据 库 和 事 务 处 理 记 录 的 示 例 :

R E S T O R E D A T A B A S E M y N w i n dF R O M M y N w i n d _ 1W I T H N O R E C O V E R Y ,M O V E ′ M y D B′ T O ′ C :\ m s s q l 7 \ d a t a\ M y N e w D B . m d f′ ,M O V E ′ M y D B L o g 1′ T O ′ C :\ m s s q l 7 \ da ta\ M y N e w D B . l d f′R E S T O R E L O G M y D B

Page 315: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M M y D B L o g 1W I T H R E C O V E R Y

本 例 中 , 恢 复 了 数 据 库 与 事 务 处 理 记 录 。 MOVE 语 句 将 要 恢 复 的 数 据 和 记 录文 件 移 动 到 指 定 的 位 置 。

示 例下 面 是 用 ST O P A T 恢 复 到 指 定 时 刻 的 示 例 :

R E S T O R E D A T A B A S E M y D BF R O M M y D B _ 1 , M y D B _ 2W I T H N O R E C O V E R YG OR E S T O R E L O G M y D BF O R M M y D B L o g 1W I T H N O R E C O V E R YG OR E S T O R E L O G M y D BF R O M M y D B L o g 2W I T H R E C O V E R Y , S T O P A T = ′ S e p t 1 5 , 1 9 9 8 1 2 : 0 0 A M′G O本 例 中 , 数 据 库 恢 复 到 19 9 8 年 9 月 15 日 的 上 午 12: 00。示 例

Page 316: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 恢 复 整 个 数 据 库 备 份 的 示 例 :R E S T O R E D A T A B A S E M y D BF R O M M y D B _ 1本 例 中 , 恢 复 了 整 个 数 据 库 。

R E S T O R E F I L E L I S T O N L Y

R E S T O R E F I L E L I S T O N L Y 返 回 备 份 集 中 一 系 列 的 数 据 库 和 记 录 文 件 。语 法

R E S T O R E F I L E L I S T O N L YF R O M < b a c k u p _ d e v i c e >[ W I T H{ F I L E = f i l e _ n u m b e r >[[ ,] { N O U N L O A D | U N L O A D } ]]< b a c k u p _ d e v i c e > : : ={{ ′ b a c k u p _ d e v i c e _ n a m e′ |   @ b a c k u p _ d e v i c e _ n a m e _ v a r }| { D I S K | T A P E | P I P E } ={ ′ t e m p _ b a c k u p _ d e v i c e′ | @ t e m p _ b a c k u p _ d e v i c e _ v a r }}

Page 317: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

式 中 各 个 变 量 参 阅 RES T O R E 语 句 。

R E S T O R E H E A D E R O N L Y

R E S T O R E H E A D E R O N L Y 返 回 备 份 设 备 中 所 有 备 份 集 的 备 份 标 题 信 息 。语 法R E S T O R E H E A D E R O N L YF R O M < b a c k u p _ d e v i c e >[ W I T H { N O U N L O A D | U N L O A D }]

< b a c k u p _ d e v i c e > : : ={{ ′ b a c k u p _ d e v i c e _ n a m e′ | @ b a c k u p _ d e v i c e _ n a m e _ v a r }|{ D I S K | T A P E | P I P E} ={ ′ t e m p _ b a c k u p _ d e v i c e′ | @ t e m p _ b a c k u p _ d e v i c e _ v a r }}

式 中 各 变 量 参 阅 RES T O R E 语 句 。

Page 318: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E S T O R E L A B E L O N L Y

R E S T O R E L A B E L O N L Y 返 回 备 份 设 备 中 备 份 介 质 的 信 息 :语 法

R E S T O R E L A B E L O N L YF R O M < b a c k u p _ d e v i c e >< b a c k u p _ d e v i c e > : : ={{ ′ b a c k u p _ d e v i c e _ n a m e′ | @ b a c k u p _ d e v i c e _ n a m e _ v a r }|{ D I S K | T A P E | P I P E} ={ ′ t e m p _ b a c k u p _ d e v i c e′ | @ t e m p _ b a c k u p _ d e v i c e _ v a r }}

式 中 各 变 量 参 阅 RES T O R E 语 句 。

R E S T O R E V E R I F Y O N L Y

R E S T O R E V E R I F Y O N L Y 检 验 备 份 集 是 否 完 整 , 并 检 验 是 否 所 有 的 卷 都 能 读 取 。它 不 恢 复 备 份 或 检 验 数 据 。

语 法

Page 319: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E S T O R E V E R I F Y O N L YF R O M < b a c k u p _ d e v i c e > [ ,... n ][ W I T H[ F I L E = f i l e _ n u m b e r ][[ ,] { N O U N L O A D | U N L O A D } ][[ ,] L O A D H I S T O R Y ]]

< b a c k u p _ d e v i c e > : : ={{ ′ b a c k u p _ d e v i c e _ n a m e′ | @ b a c k u p _ d e v i c e _ n a m e _ v a r }| { D I S K | T A P E | P I P E } ={ ′ t e m p _ b a c k u p _ d e v i c e′ | @ t e m p _ b a c k u p _ d e v i c e _ v a r }}

式 中 各 变 量 参 阅 RES T O R E 语 句 。

R E T U R N

R E T U R N 语 句 从 查 询 或 过 程 中 退 出 , 而 不 执 行 RETUR N 语 句 后 面 的 语 句 。 用 户定 义 的 返 回 状 态 值 不 应 与 SQL S e r v e r 保 留 的 值 ( 0~ -9 9) 有 冲 突 。

如 果 没 有 提 供 返 回 值 , 就 使 用 SQL S e r v e r 值 。 SQ L S e r v e r 现 在 使 用 值 0~

Page 320: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

- 1 4。 这 些 值 与 其 使 用 说 明 如 下 所 示 :0 =成 功 地 执 行 完 程 序 , -1 =对 象 失 踪 (不 见 ), -2 =数 据 类 型 有 错 误 , -3 =过 程

被 选 择 未 死 锁 牺 牲 品 ,-4 =许 可 有 错 误 ,-5 =语 法 有 错 误 , -6=其 他 用 户 错 误 ,-7 =资 源 错 误 , -8 =非 致 命 内 部 错 误 , -9=达 到 系 统 极 限 , -10= 致 命 内 部 矛 盾 , -1 1 =致 命 内 部 矛 盾 , -12=表 格 或 索 引 崩 溃 , -1 3 =数 据 库 崩 溃 , -14=硬 件 有 错 误

语 法

R E T U R N [ ( i n t e g e r _ e x p r e s s i o n )]

变 量 int e g e r _ e x p r e s s i o n 是 返 回 至 调 用 存 储 过 程 或 者 应 用 程 序 的 整 数 值 。示 例下 面 是 使 用 RE T U R N 的 示 例 :

C R E A T E P R O C M y P r o cA SD E C L A R E @ r t n i n tS E L E C T *F R O M S Y O B J E C T SIf @ @ e r r o r = 0B E G I NS E L E C T @ r t n = 0E N D

Page 321: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

E L S EB E G I NS E L E C T @ r t n = 1R E T U R N @ r t n@ E N DG O

本 例 中 , 通 过 执 行 存 储 过 程 MyP r o c, 并 检 查 成 功 或 失 败 的 返 回 代 码 , 就 可以 进 一 步 操 作 。

D E C L A R E @ r t n i n tE X E C @ r t n = M y P r o cI F @ r t n = 0P R I N T ′ S u c c e s s f u l e x e c u t i o n o f M y P r o c s t o r e d p r o c e d u r e ′E L S EP R I N T ′ F a i l e d e x e c u t i o n o f M y P r o c s t o r e d p r o c e d u r e ′G O

R E V E R S E

R E V E R S E 返 回 字 符 表 达 式 的 倒 序 。 如 果 传 输 ′ pa m′ , 将 接 收 到 ′ ma p′ 。

Page 322: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

R E V E R S E ( c h a r a c t e r _ e x p r e s s i o n )

变 量 cha r a c t e r _ e x p r e s s i o n 是 包 括 字 母 和 数 字 的 字 符 或 二 进 制 表 达 式 、 常数 、 变 量 或 列 。

R E V O K E

参 阅 第 5 章 。

R I G H T

R I G H T 返 回 字 符 串 中 从 右 数 给 定 字 符 数 的 字 符 串 。语 法

R I G H T ( c h a r a c t e r _ e x p r e s s i o n, i n t e g e r _ e x p r e s s i o n )

变 量

c h a r a c t e r _ e x p r e s s i o n c h a r a c t e r _ e x p r e s s i o n 是 字 符 或 二 进 制 包 括

Page 323: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

字 母 和 数 字 的 表 达 式 、 常 数 、 变 量 或 者 列 。int e g e r _ e x p r e s s i o n i n t e g e r _ e x p r e s s i o n 是 正 整 数 。

R O L L B A C K T R A N S A C T I O N

R O L L B A C K T R A N S A C T I O N 删 除 开 始 进 行 事 务 处 理 以 来 的 更 改 的 所 有 数 据 , 调用 它 可 将 事 务 处 理 返 回 到 保 存 点 或 事 务 处 理 的 起 始 点 。

语 法

R O L L B A C K [ T R A N [ S A C T I O N ] [ t r a n s a c t i o n _ n a m e |@ t r a n _ n a m e _ v a r i a b l e |s a v e p o i n t _ n a m e |@ s a v e p o i n t _ v a r i a b l e ] ]

变 量

t r a n s a c t i o n _ n a m e t r a n s a c t i o n _ n a m e 是 BE G I N T R A N S A C T I O N 给 事务 处 理 起 的 名 称 。

@tr a n _ n a m e _ v a r i a b l e @ t r a n _ n a m e _ v a r i a b l e 是 用 户 定 义 的 变 量 名称 , 它 保 存 数 据 类 型 为 CHAR, VA R C H A R, NC H A R,或 者 NV A R C H A R 的 事 务 处 理 名 。

sav e p o i n t _ n a m e s a v e p o i n t _ n a m e 是 SA V E T R A N S A C T I O N 语 句 给

Page 324: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

出 的 sav e p o i n t _ n a m e。@s a v e p o i n t _ v a r i a b l e @ s a v e p o i n t _ v a r i a b l e 是 用 户 定 义 的 变 量 名

称 , 它 保 存 数 据 类 型 为 CHAR, VA R C H A R, NC H A R,或 者 NV A R C H A R 的 保 存 点 的 名 称 。

R O L L B A C K W O R K

除 ROL L B A C K T R A N S A C T I O N 可 以 接 收 事 务 处 理 名 称 以 外 , ROL L B A C K W O R K 与RO L L B A C K T R A N S A C T I O N 相 同 。

语 法

R O L L B A C K [ W O R K ]

R O U N D

R O U N D 返 回 给 出 的 数 学 表 达 式 , 并 四 舍 五 入 至 指 定 的 长 度 或 精 度 。语 法

R O U N D ( n u m e r i c _ e x p r e s s i o n , l eng th [ , f u n c t i o n] )

Page 325: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量

n u m e r i c _ e x p r e s s i o n n u m e r i c _ e x p r e s s i o n 可 以 是 小 数 表 达 式 、 浮 点 数表 达 式 、 整 型 数 表 达 式 、 货 币 表 达 式 、 数 字 表 达式 、 实 数 表 达 式 、 短 整 型 数 表 达 式 、 小 货 币 表 达式 或 微 短 整 型 数 表 达 式 。

le n g t h l e n g t h 是 四 舍 五 入 的 精 度 。 它 可 以 是 微 短 整 型数 、 短 整 型 数 或 整 型 数 。 当 长 度 为 负 时 , 数 字 表达 式 在 小 数 点 左 边 进 行 四 舍 五 入 。

fu n c t i o n f u n c t i o n 是 微 短 整 型 数 、 短 整 型 数 或 整 型 数 , 是要 执 行 的 操 作 。 如 果 其 值 为 0, 将 数 字 表 达 式 四舍 五 入 。 如 果 其 值 不 为 0, 将 数 字 表 达 式 舍 位 。

R T R I M

R T R I M 删 去 尾 部 的 空 格 。语 法

R T R I M ( c h a r a c t e r _ e x p r e s s i o n )

变 量 cha r a c t e r _ e x p r e s s i o n 是 字 符 或 二 进 制 包 含 字 母 和 数 字 的 表 达 式 , 常量 、 变 量 或 列 。

Page 326: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S A V E T R A N S A C T I O N

S A V E T R A N S A C T I O N 在 事 务 处 理 中 建 立 保 存 点 。语 法

S A V E T R A N [ S A C T I O N] { s a v e p o i n t _ n a m e| @ s a v e p o i n t _ v a r i a b l e }

变 量

s a v e p o i n t _ n a m e 存 储 点 的 名 称 。@sa v e p o i n t _ v a r i a b l e 用 户 定 义 变 量 的 名 称 , 它 存 储 数 据 类 型 为 CH A R,

VA R C H A R N C H A R 或 NV A R C H A R 的 存 储 点 名 。

S E L E C T

S E L E C T 语 句 返 回 数 据 库 表 中 的 行 。语 法

S E L E C T[ A L L | D I S T I N C T][

Page 327: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T O P n [ P E R C E N T] [ W I T H T I E S]]{ < r e s u l t _ d a t a > : : ={ *| [ c o l u m n _ h e a d i n g = ] c o l u m n _ n a m e| c o l u m n _ n a m e [[ A S ] c o l u m n _ h e a d i n g ]| c o l u m n _ n a m e A S e x p r e s s i o n| e x p r e s s i o n [ A S] c o l u m n _ h e a d i n g ]| G R O U P I N G ( c o l u m n _ n a m e )| I D E N T I T Y C O L| R O W G U I D C O L| l o c a l _ o r _ g l o b a 1 _ v a r i a b l e| n e w _ c o l u m n _ n a m e = I D E N T I T Y ( d a t a _ t y p e , s e e d , i n c r e m e n t )| f u l l t e x t _ t a b l e . R A N K} [ ,... n ]| < v a r i a b l e _ a s s i g n m e n t > : : = { @ l o c a l _ v a r i a b l e = e x p r e s s i o n }[ , . . .n ]

}[ I N T O n e w _ t a b l e _ n a m e ][ F R O M{

Page 328: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< t a b l e _ o r _ v i e w >| ( s e l e c t _ s t a t e m e n t ) [ A S] a l i a s| < t a b l e _ o r _ v i e w >[ { C R O S S | I N N E R }|{F U L L| L E F T| R I G H T} [ O U T E R ] [ < j o i n _ h i n t > ] J O I N < t a b l e _ o r _ v i e w >O N s e a r c h _ c o n d i t i o n s]| C O N T A I N S T A B L E( t a b l e , { c o l u m n | * } ,′ < c o n t a i n s _ s e a r c h _ c o n d i t i o n >′)| F R E E T E X T T A B L E( t a b l e , { c o l u n n | * } ,′ f r e e t e x t _ s t r i n g′)}[ , . . .n]][ W H E R E{ [ < s e a r c h _ c o n d i t i o n s > : : =

Page 329: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ N O T] < p r e d i c a t e >[ { A N D | O R } [ N O T ] < p r e d i c a t e >]][ , . . . n ][ | C O N T A I N S( { c o l u m n | * } ,′ < c o n t a i n s _ s e a r c h _ c o n d i t i o n >′)| F R E E T E X T({ c o l u m n | * } , ′ f r e e t e x t _ s t r i n g′)][ , . . . n ]| f u l l t e x t _ t a b l e . f u l l t e x t _ k e y _ c o l u m n = a l i a s .[ K E Y ]}][ {G R O U P B Y [ A L L ] { c o l u m n _ n a m e } [ ,... n ]][ W I T H { C U B E | R O L L U P } ]}][ H A V I N G s e a r c h _ c o n d i t i o n s ][ O R D E R B Y{{{ t a b l e . | v i e w . } c o l u m n _ n a m e

Page 330: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

| s e l e c t _ l i s t _ n u m b e r| e x p r e s s i o n} [ A S C | D E S C ]}[ ,... n ]][ C O M P U T E r o w _ a g g r e g a t e ( { e x p r e s s i o n | c o l u m n _ n a m e } [ , . . .n] )[ B Y { e x p r e s s i o n | c o l u m n _ n a m e )[ , . . .n]]][ F O R B R O W S E ][ O P T I O N ( < q u e r y _ h i n t > [ , . . . n ] )]< t a b l e _ o r _ v i e w > : : ={

t a b l e [[ A S ] a l i as ] [ W I T H ( < t a b l e _ h i n t > [ . . . m ] )]| v i e w [[ A S ] a l i a s ]| O P E N R O W S E T ( ′ p r o v i d e r _ n a m e′ ,{

′ d a t a s o u r c e′ ;′ u s e r _ i d ′ ;′ p a s s w o r d′| ′ p r o v i d e r _ s t r i n g′}{

[ c a t a l o g .][ s c h e m a .] o b j e c t _ n a m e| ′ q u e r y′

Page 331: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

})| O P E N Q U E R Y ( l i n k e d _ s e r v e r ,′ q u e r y′ )}

< t a b l e _ h i n t > : : =([ I N D E X ={

i n d e x _ n a m e| i n d e x _ i d} [ ,... n ][ FA S T F I R S T R O W ][ H O L D L O C K ][ N O L O C K ][ P A G L O C K ][ R E A D C O M M I T T E D ][ R E A D P A S T ][ R E A D U N C O M M I T T E D ][ R E P E A T A B L E R E A D][ R O W L O C K ][ S E R I A L I Z A B L E ][ T A B L O C K ][ T A B L O C K X][ U P D L O C K ] )< j o i n _ h i n t > : : ={H A S H| L O O P| M E R G E}

Page 332: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< q u e r y _ h i n t > : : ={ { H A S H | O R D E R } G R O U P| {M E R G E | H A S H | C O N C A T } U N I O N| FA S T n| F O R C E O R D E R| R O B U S T P L A N}

变 量

S E L E C T A L L A L L 允 许 在 结 果 集 中 包 含 相 同 的 行 。DI S T I N C T D I S T I N C T 只 检 索 结 果 集 中 的 独 有 的 行 。TO P n T O P 表 示 只 返 回 前 n 行 。RE R C E N T P E R C E N T 返 回 前 n% 行 。WI T H T I E S W I T H T I E S 只 和 OR D E R B Y 子 句 一 起 使 用 ,也 可 与 TO P

和 PE R C E N T 一 起 使 用 。 如 果 ORD E R B Y 列 中 具 有 相同 的 值 的 行 彼 此 相 联 系 , 有 时 WIT H T I E S 返 回 的 行数 多 于 n(用 户 定 义 的 值 )。

<r e s u l t _ d a t a > r e s u l t _ d a t a 是 希 望 SQ L S e r v e r 返 回 的 值 。 它 可 以是 一 列 ( 或 几 列 )、 表 达 式 、 变 量 的 赋 值 或 者 星 号(* ), *表 示 表 格 中 所 有 的 列 。

Col u m n _ h e a d i n g 如 果 希 望 建 立 一 个 自 己 想 要 的 列 标 题 , 可 以 用

Page 333: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

C o l u m n _ h e a d i n g 替 代 SQ L S e r v e r 提 供 的 列 标 题 。可 以 使 用 下 述 语 法 :col u m n _ n a m e A S c o l u m n _ h e a d i n gc o l u m n _ h e a d i n g = c o l u m n _ n a m ec o l u m n _ n a m e c o l u m n _ h e a d i n g

G R O U P I N G G R O U P I N G 跟 G R O U P B Y 和 C U B E 或 RO L L U P 一 起 使 用 ,适 用 于 返 回 集 中 的 列 名 , 也 就 是 GR O U P B Y 列 。GR O U P I N G 输 出 一 附 加 列 , 如 果 列 值 为 1, 表 示 CU B E或 RO L L U P 添 加 累 加 行 , 如 果 列 值 为 NULL 或 0 值 ,表 示 返 回 集 中 的 列 值 无 效 。

IDE N T I T Y C O L I D E N T I T Y C O L 表 示 表 格 中 标 识 列 的 名 称 。ROW G U I D C O L R O W G U I D C O L 表 示 唯 一 标 识 符 列 是 一 行 全 局 唯 一 标 识

符 列 。loc a l _ o r _ g l o b a l _ v a r ia b l e

l o c a l _ o r _ g l o b a l _ v a r i a b l e 指 定 局 部 或 全 局 变 量 的名 称 。

new _ c o l u m n _ n a m e n e w _ c o l u m n _ n a m e 定 义 数 据 类 型 为 NOT N U L L 微 短 整数 、 短 整 型 数 、 整 型 数 、 小 数 或 数 字 的 新 列 。

ID E N T I T Y I D E N T I T Y 与 SE L E C T I N T O 一 起 使 用 , 表 示 该 列 将 使用 ID E N T I T Y 属 性 。

da t a _ t y p e d a t a _ t y p e 指 标 识 列 的 数 据 类 型 , 它 可 以 为 整 型 数 、短 整 型 数 、 微 短 整 型 数 、 小 数 或 数 字 。

se e d s e e d 和 ID E N T I T Y 一 起 使 用 , 是 表 格 中 第 一 行 的 值 。

Page 334: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

缺 省 值 为 1。in c r e m e n t i n c r e m e n t 是 将 下 一 行 添 加 到 表 格 时 根 值 的 增 量

值 。 然 后 , 它 从 添 加 的 最 后 一 行 开 始 递 增 , 一 直 到插 入 表 格 中 的 下 一 行 。

n n 表 示 前 面 的 项 可 以 重 复 。ful l t e x t _ t a b l e f u l l t e x t _ t a b l e 是 为 全 文 查 询 标 志 的 表 格 。RA N K R A N K 和 全 文 查 询 一 起 使 用 , 显 示 每 行 的 序 列 值 。<va r i a b l e _ a s s i g n m e n t>

v a r i a b l e _ a s s i g n m e n t 是 局 部 变 量 的 赋 值 。

@lo c a l _ v a r i a b l e = e x p re s s i o n

@ l o c a l _ v a r i a b l e = e x p r e s s i o n 是 局 部 变 量 的 赋 值 。如 果 可 能 , 最 好 使 用 SE T 语 句 , 因 为 , 如 果 SEL E C T语 句 返 回 多 个 值 , 就 将 变 量 设 置 为 所 返 回 的 最 后 一行 。 如 果 不 返 回 行 , 变 量 将 保 持 SEL E C T 语 句 执 行前 的 值 。 如 果 子 查 询 程 序 进 行 赋 值 , 又 没 有 返 回 行 ,值 就 设 置 为 NULL。

IN T O n e w _ t a b l e _ n a m e I N T O n e w _ t a b l e _ n a m e 用 返 回 集 中 的 列 建 立 表 格 。<ta b l e _ o r _ v i e w > < t a b l e _ o r _ v i e w >是 表 格 或 视 图 的 名 称 。al i a s a l i a s 是 列 或 视 图 的 别 名 。 派 生 表 需 要 使 用 别 名 。

它 通 常 比 实 际 名 称 要 短 , 这 样 , 在 SEL E C T 语 句 中使 用 的 两 个 表 格 有 相 同 的 列 名 时 , 更 容 易 区 分 含 义不 明 的 相 同 列 名 。

<ta b l e _ h i n t > t a b l e _ h i n t 指 示 SQ L S e r v e r 使 用 优 化 方 法 。 表

Page 335: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

格 提 示 应 放 在 圆 括 号 内 。虽 然 提 供 表 格 提 示 ,但 SQ LS e r v e r 通 常 能 自 己 找 出 最 佳 优 化 方 式 。 有 效 的 表格 提 示 包 括 : P A G L O C K , NO L O C K , R O W L O C K ,T A B L O C K , T A B - L O C K X , HO L D L O C K , NO L O C K ,RE A D C O M M I T E D ,RE P E A T A B L E R E A D,SE R I A L I Z A B L E,N O L O C K 和 R E A D P A S T。

IN D E X = { i n d e x _ n a m e |i n d e x _ i d }

I N D E X = 表 格 使 用 的 索 引 名 称 。 出 现 成 簇 索 引 表 示IN D E X = 0 使 用 成 簇 索 引 ;IN D E X = 1 进 行 成 簇 索 引 扫描 。没 有 成 簇 索 引 时 使 用 IND E X = 0 将 进 行 表 格 扫 描 ,使 用 IN D E X = 1 会 出 错 。

n n 表 示 前 面 的 项 可 以 重 复 。FAS T F I R S T R O W F A S T F I R S T R O W 与 使 用 FAS T 1 相 同 , 表 示 优 化 程 序

将 尽 快 返 回 第 一 行 , 并 继 续 生 成 查 询 程 序 中 的 其 他行 。

HO L D L O C K H O L D L O C K 和 SE R I A L I Z A B L E 相 同 , 和 FOR B R O W S E 子句 相 互 排 斥 。 它 包 含 事 务 处 理 期 间 的 共 享 锁 定 , 而不 是 释 放 完 成 页 面 的 存 取 。

NO L O C K N O L O C K 进 行 无 效 的 读 取 , 且 不 进 行 共 享 或 单 独 的 锁定 。 它 可 以 读 取 未 提 交 的 事 务 处 理 , 即 NO L O C K 可以 读 取 不 一 致 的 数 据 , 并 可 能 引 起 错 误 60 5, 606,62 4, 或 62 5 ;这 表 示 应 再 试 着 执 行 一 次 语 句 。

PA G L O C K P A G L O C K 发 出 共 享 页 面 的 锁 定 , 而 不 是 共 享 表 格 的

Page 336: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

锁 定 。REA D C O M M I T T E D R E A D C O M M I T T E D 通 过 保 存 共 享 锁 定 来 读 取 数 据 , 且

读 取 数 据 时 , 不 允 许 无 效 读 取 , 而 允 许 修 改 数 据 ,此 时 REA D C O M M I T T E D 提 供 较 高 的 兼 容 性 , 这 可 导 致非 重 复 性 读 取 。

RE A D P A S T R E A D P A S T 用 行 级 锁 定 跳 行 。REA D U N C O M M I T T E D R E A D U N C O M M I T T E D 和 N O L O C K 相 同 。REP E A T A B L E R E A D R E P E A T A B L E R E A D 用 于 在 查 询 中 所 有 的 数 据 上 设 置 锁

定 , 但 仍 允 许 其 他 用 户 插 入 行 , 仍 能 生 成 幻 象 行 ,并 允 许 缺 省 状 态 下 较 少 的 并 发 性 。

RO W L O C K R O W L O C K 产 生 共 享 行 锁 定 , 而 不 是 共 享 页 面 或 共 享表 格 锁 定 。

SER I A L I Z A B L E S E R I A L I Z A B L E 与 HO L D L O C K 相 同 。TA B L O C K T A B L O C K 在 表 格 上 产 生 共 享 表 格 锁 定 , 直 到 语 句 结

束 。TA B L O C K X T A B L O C K X 产 生 专 用 表 格 锁 定 , 直 到 语 句 或 事 务 处 理

结 束 。UP D L O C K U P D L O C K 产 生 更 新 锁 定 , 直 到 事 务 处 理 或 语 句 结 束 。<jo i n _ h i n t > j o i n _ h i n t 在 联 结 的 执 行 策 略 方 面 指 导 SQ L

S e r v e r。{ L O O P| HAS H| ME R G E } { L O O P| H A S H| ME R G E }允 许 通 过 查 询 优 化 程 序 控 制

所 使 用 的 联 结 策 略 , 并 根 据 指 定 的 内 容 执 行 嵌 套 的

Page 337: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

循 环 连 接 、 散 列 连 接 或 合 并 连 接 。Ope n R o w s e t O p e n R o w s e t 定 义 从 数 据 源 中 查 询 远 程 数 据 的 联 接 信

息 。Op e n Q u e r y O p e n Q u e r y 用 来 执 行 通 过 查 询 。sel e c t _ s t a t e m e n t s e l e c t _ s t a t e m e n t 是 从 数 据 库 中 返 回 行 的 查 询 程

序 。CROS S J O I N C R O S S J O I N 是 返 回 行 的 两 个 表 格 的 交 叉 积 , 就 象 没

有 WH E R E 语 句 一 样 。IN N E R I N N E R 连 接 是 缺 省 设 置 , 它 返 回 匹 配 的 行 。LE F T[ OU T E R] 即 使 RIG H T 表 格 中 没 有 对 应 的 行 , LEFT[ OU T E R]

连 接 , 返 回 左 边 表 格 中 的 所 有 行 ;但 是 RI G H T 表 格中 的 列 为 NU L L。

RI G H T[ OU T E R] 即 使 LEFT 表 格 中 没 有 对 应 的 行 , RIG H T[ OU T E R]连 接 , 返 回 右 边 表 格 中 的 所 有 行 ;但 是 LE F T 表 格 中的 列 为 NU L L。

FU L L[ OU T E R] F U L L[ OU T E R] 联 接 用 于 返 回 左 边 或 右 边 表 格 中 不符 合 连 接 条 件 的 行 , 另 一 表 格 中 返 回 为 NU L L 的 行 ,以 及 符 合 联 接 标 准 的 其 它 匹 配 行 。

CON T A I N S T A B L E C O N S T A I N S T A B L E 返 回 精 确 匹 配 或 不 太 精 确 匹 配 的 字符 列 的 结 果 表 。

FRE E T E X T T A B L E F R E E T E X T T A B L E 返 回 意 义 匹 配 而 不 是 单 词 匹 配 的 字符 列 结 果 表 。

Page 338: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< s e a r c h _ c o n d i t i o n s > s e a r c h _ c o n d i t i o n s 是 查 询 中 限 制 的 条 件 。CO N T A I N S C O N T A I N S 搜 索 精 确 或 者 不 太 精 确 匹 配 的 字 符 列 。FR E E T E X T F R E E T E X T 为 搜 索 意 义 匹 配 的 字 符 列 。ful l t e x t _ t a b l e f u l l t e x t _ t a b l e 是 为 全 文 查 询 标 志 的 表 格 名 或 别

名 。ful l t e x t _ k e y _ c o l u m n f u l l t e x t _ k e y _ c o l u m n 是 为 全 文 查 询 标 志 的

ful l t e x t _ t a b l e 中 的 全 文 关 键 列 。[ KE Y] [ KE Y ] 表 示 选 择 满 足

<co n t a i n s _ s e a r c h _ c o n d i t i o n > 的 行 作 为 选 定 范围 。

GR O U P B Y G R O U P B Y 将 行 分 成 组 , 这 些 组 在 GRO U P B Y 列 中 有相 同 的 值 , SE L E C T 语 句 还 可 以 为 每 一 组 的 列 总 汇 包含 集 合 函 数 。

AL L A L L 表 示 即 使 不 符 合 WHE R E 子 句 中 的 搜 索 条 件 , 也返 回 所 有 的 组 和 结 果 集 。 对 于 不 符 合 搜 索 条 件 的组 , 在 总 汇 列 中 返 回 NU L L。 AL L 必 须 跟 在 GRO U P B Y子 句 后 。

CU B E C U B E 不 仅 返 回 GR O U P B Y 集 合 行 , 而 且 返 回 总 汇 行 。这 些 总 汇 行 在 GRO U P B Y 子 句 中 的 列 或 表 达 式 的 子集 上 的 组 合 来 建 立 , 称 为 超 集 合 行 。

RO L L U P R O L L U P 表 示 超 集 合 子 集 , 它 和 GRO U P B Y 子 句 中 通常 的 集 合 行 一 起 建 立 。

Page 339: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

H A V I N G H A V I N G 定 义 GR O U P B Y 子 句 的 条 件 , 与 WH E R E 子 句定 义 SE L E C T 语 句 中 单 独 行 的 条 件 相 同 。

OR D E R B Y O R D E R B Y 确 定 SQ L S e r v e r 返 回 的 列 的 排 列 次 序 。sel e c t _ l i s t _ n u m b e r s e l e c t _ l i s t _ n u m b e r 是 <r e s u l t _ d a t a >中 表 达 式 的

位 置 , 此 数 值 可 以 代 替 ORD E R B Y 子 句 中 的 表 达 式 。AS C A S C (递 增 )表 示 ORD E R B Y 子 句 返 回 的 分 类 数 据 由 小

到 大 排 列 。DE S C D E S C (递 减 )表 示 ORDER BY 子 句 返 回 的 分 类 数 据 从

最 大 开 始 排 列 。CO M P U T E C O M P U T E 在 结 果 集 中 建 立 行 集 合 函 数 的 汇 总 行 。

CO M P U T E 子 句 用 于 计 算 子 组 合 中 的 总 计 值 , 或 用 于对 同 一 组 计 算 多 个 集 合 函 数 , 或 在 集 合 函 数 SU M,AV G, MI N, MA X 和 CO U N T 的 组 中 中 断 汇 总 变 动 。 然后 就 可 以 查 看 细 节 和 总 计 行 。 使 用 CO M P U T E B Y 子句 时 必 须 使 用 ORD E R B Y 子 句 ;可 是 如 果 用 COM P U T E而 不 用 BY 时 , ORD E R B Y 是 可 选 项 。

row _ a g g r e g a t e r o w _ a g g r e g a t e 函 数 有 AV G,COU N T,M A X,MI N 和 SU M。BY B Y 表 示 希 望 行 集 合 函 数 计 算 子 组 。 当 子 组 值 改 变

时 , 将 出 现 中 断 , 集 合 函 数 创 建 为 结 果 集 中 的 新 行 。使 用 BY 表 示 ORDE R B Y 必 须 和 CO M P U T E B Y 一 起 使用 。 如 果 BY 后 面 有 多 个 表 达 式 , 会 使 集 合 函 数 在每 一 级 别 上 进 行 汇 总 。

Page 340: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F O R B R O W S E 如 果 用 DB- L i b r a r y 在 应 用 程 序 中 查 看 数 据 , FO RB R O W S E 允 许 更 新 。

<qu e r y _ h i n t > < q u e r y _ h i n t >指 导 查 询 优 化 程 序 如 何 优 化 查 询 ;然而 , 用 户 不 指 定 查 询 提 示 , SQL S e r v e r 通 常 知 道 如何 进 行 优 化 。

{H A S H| OR D E R } G R O U P { H A S H| ORD E R } G R O U P 指 导 SQL S e r v e r 去 散 列 或 排 列OR D E R B Y 或 COM P U T E 子 句 中 的 聚 合 。

{M E R G E | HAS H |CO N C A T } U N I O N

{ M E R G E| H A S H| CO N C A T } U N I O N 指 导 SQL S e r v e r 对U N I O N 操 作 进 行 合 并 , 散 列 和 链 接 。

FA S T n F A S T n 表 示 优 化 程 序 将 尽 快 返 回 前 n 行 , 并 继 续 生成 查 询 中 的 其 余 行 。

FOR C E O R D E R F O R C E O R D E R 指 导 SQ L S e r v e r 在 优 化 查 询 过 程 中 保持 查 询 语 法 中 指 定 的 连 接 顺 序 。

ROB U S T P L A N R O B U S T P L A N 指 导 SQ L S e r v e r 查 询 优 化 程 序 器 为 可能 最 大 的 行 容 量 建 立 查 询 计 划 。

示 例下 面 是 SEL E C T 语 句 的 示 例 :

S E L E C T a . C o l u m n 1 , b . C o l u m n 2F R O M M y T a b l e a ,Y o u r T a b l e b

Page 341: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

W H E R E a . C o l u m n 3 = b . C o l u m n 3O R D E R B Y a . C o l u m n 1

本 例 中 , 执 行 IN N E R J O I N, 并 对 结 果 集 排 序 。

S E S S I O N _ U S E R

S E S S I O N _ U S E R 是 一 个 nil a d i c 函 数 , 它 提 供 执 行 当 前 对 话 的 用 户 名 称 值 。语 法

S E S S I O N _ U S E R

S E T @ l o c a l _ v a r i a b l e

S E T @ l o c a l _ v a r i a b l e 将 局 部 变 量 设 置 为 某 值 。语 法

S E T{

{ @ l o c a l _ v a r i a b l e = e x p r e s s i o n }

Page 342: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

| { @ c u r s o r _ v a r i a b l e ={ @ c u r s o r _ v a r i a b l e| c u r s o r _ n a m e| { C U R S O R[ F O R W A R D _ O N L Y | S C R O L L ][ S T A T I C | K E Y S E T | D Y N A M I C ][ R E A D _ O N L Y | S C R O L L _ L O C K S | O P T I M I S T I C ]F O R s e l e c t _ s t a t e m e n t[ F O R { R E A D O N L Y | U P D A T E [ O F c o l u m n _ l i s t ] } ] } } } }

变 量

@ l o c a l _ v a r i a b l e @ l o c a l _ v a r i a b l e 为 一 变 量 , 但 不 是 游 标 变 量 。exp r e s s i o n e x p r e s s i o n 是 任 意 的 Mic r o s o f t S Q L S e r v e r 表 达

式 。cur s o r _ v a r i a b l e c u r s o r _ v a r i a b l e 指 游 标 变 量 的 名 称 。cur s o r _ n a m e c u r s o r _ n a m e 指 游 标 的 名 称 。CU R S O R C U R S O R 表 示 此 SE T 语 句 声 明 了 一 个 游 标 。SC R O L L S C R O L L 描 述 游 标 , 表 示 游 标 可 以 进 行 FIR S T, LAS T,

NE X T, PR I O R, RE L A T I V E 和 AB S O L U T E 的 滚 动 。FOR W A R D _ O N L Y F O R W A R D _ O N L Y 将 游 标 滚 动 限 制 为 FET C H N E X T。S T A T I C S T A T I C 游 标 用 temp d b 中 的 临 时 表 格 保 存 游 标 数

Page 343: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

据 , 更 新 数 据 库 中 的 数 据 不 为 游 标 读 取 所 注 意 。KE Y S E T K E Y S E T 表 示 打 开 游 标 时 , 游 标 中 的 行 与 顺 序 固 定 不

变 。 唯 一 的 键 集 插 入 到 名 为 键 集 的 tem p d b 表 格 中 。游 标 上 卷 时 , 可 以 看 到 当 前 用 户 或 其 他 用 户 对 非 键值 的 更 改 。 但 看 不 到 并 行 用 户 进 行 的 插 入 。 要 读 取删 去 的 行 将 返 回 @@F E T C H _ S T A T U S 的 值 -2。 其 他 用 户对 关 键 列 的 更 新 可 以 是 一 个 插 入 或 删 除 , 但 看 不 到插 入 。 要 读 取 删 去 的 行 将 返 回 @@F E T C H _ S T A T U S 的 值-2。 可 是 使 用 WHE R E C U R R E N T O F 语 法 就 能 看 到 新行 。

DY N A M I C 对 于 一 个 游 标 , DYNA M I C 可 使 该 游 标 滚 动 时 能 看 到所 有 的 数 据 改 变 , 并 且 每 一 次 读 取 都 改 变 游 标 。 即绝 对 读 取 和 相 对 读 取 都 不 和 DY N A M I C 一 起 使 用 。

RE A D _ O N L Y R E A D _ O N L Y 定 义 不 能 进 行 更 新 的 只 读 游 标 。SCR O L L L O C K S S C R O L L L O C K S 表 示 读 取 时 锁 定 游 标 行 , 以 后 进 行 修

改 就 不 会 遇 到 阻 碍 。OPT I M I S T I C O P T I M I S T I C 表 示 如 果 读 取 行 后 对 行 进 行 了 改 动 , 就

不 能 通 过 游 标 进 行 更 新 或 删 除 。 这 通 过 比 较 时 间 戳值 来 完 成 , 如 果 没 有 时 间 戳 列 , 就 通 过 比 较 检 查 和来 完 成 。

FOR s e l e c t _ s t a t e m e n t F O R s e l e c t _ s t a t e m e n t 是 返 回 游 标 数 据 的 查 询 程序 。

Page 344: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E A D O N L Y R E A D O N L Y 与 RE A D _ O N L Y 一 样 。UP D A T E [ O Fc o l u m n _ l i s t]

U P D A T E[ OF c o l u m n _ l i s t] 列 出 可 更 新 的 游 标 列 。

示 例下 面 为 SE T 语 句 的 示 例 :

D E C L A R E C u r s o r 1 C U R S O R G L O B A L F O R S E L E C T * F R O M M y T a b l eD E C L A R E @ C u r s o r 1 _ v a r i a b l e C U R S O RS E T @ C u r s o r 1 _ v a r i a b l e = C u r s o r 1D E A L L O C A T E C u r s o r 1 / * T h e r e i s n o w o n l y a L O C A L v a r i a b l er e f e r e n c e ( @ m y _ v a r i a b l e ) t o t h e m y _ c u r s o rcur so r . */

本 例 中 , 局 部 变 量 的 设 置 参 照 游 标 Cu r s o r 1。

S E T

S E T 语 句 根 据 某 些 设 置 修 改 当 前 对 话 的 行 为 。

Page 345: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T A N S I _ D E F A U L T S

S E T A N S I _ D E F A U L T S 打 开 或 关 闭 确 定 SQL - 9 2 标 准 状 态 的 Mic r o s o f t S Q LS e r v e r 设 置 。

语 法

S E T A N S I _ D E F A U L T S { O N | O F F }

S E T A N S I _ N U L L _ D F L T _ O F F

当 用 CR E A T E 或 AL T E R 语 句 添 加 列 时 , SET A N S I _ N U L L _ D F L T _ O F F 置 O N 将 改变 在 新 列 中 允 许 为 空 的 缺 省 值 。 如 果 该 设 置 为 ON, 则 新 列 需 要 某 个 值 , 而 不 是NU L L。

语 法

S E T A N S I _ N U L L _ D F L T _ O F F { O N | O F F }

Page 346: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T A N S I _ N U L L _ D F L T _ O N

当 用 CR E A T E 或 AL T E R 语 句 添 加 列 时 , SET A N S I _ N U L L _ D F L T _ O N 置 O F F 将 改变 在 新 列 中 允 许 为 空 的 缺 省 值 。 如 果 此 设 置 为 OF F, 则 新 列 需 要 一 个 值 , 而 不是 NU L L。

语 法

S E T A N S I _ N U L L _ D F L T _ O N { O N| O F F }

S E T A N S I _ N U L L S

S E T A N S I _ N U L L S 用 等 号 和 不 等 号 来 计 算 将 NU L L 值 与 未 知 值 相 比 较 的 值 。 如果 某 个 与 NU L L 比 较 的 值 为 NULL, 将 SE T A N S I _ N U L L S 设 置 为 OF F 将 使 该 值 等 于真 , 否 则 为 假 。

语 法

S E T A N S I _ N U L L S { O N | O F F }

Page 347: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T A N S I _ P A D D I N G

建 议 将 SET A N S I _ P A D D I N G 设 置 为 ON, 它 决 定 字 符 、 二 进 制 、 可 变 字 符 , 和可 变 二 进 制 数 据 类 型 如 何 存 储 尾 部 的 空 格 。 若 将 新 字 符 列 的 这 个 设 置 设 定 为 ON,插 入 尾 部 的 空 格 会 填 满 整 个 列 ;对 于 新 二 进 制 列 , 插 入 尾 部 的 零 会 填 满 整 个 列 。对 于 新 可 变 字 符 和 可 变 二 进 制 列 , 不 会 截 短 与 尾 随 值 一 起 插 入 的 值 , 尾 随 值 不会 添 加 至 添 满 整 个 列 。 当 该 设 置 为 OF F 时 , NO T N U L L 字 符 和 二 进 制 列 会 和 尾 随值 一 起 插 入 至 添 满 整 个 列 , 但 是 NU L L 字 符 和 二 进 制 列 与 可 变 字 符 和 可 变 二 进 制相 同 。 在 这 些 情 况 下 , 将 截 去 尾 部 的 值 , 尾 部 的 值 不 会 插 入 至 添 满 整 个 新 列 。

语 法

S E T A N S I _ P A D D I N G { O N | O F F }

S E T A N S I _ W A R N I N G S

如 果 在 集 合 函 数 中 有 NU L L, SE T A N S I _ W A R N I N G S 置 ON 就 用 信 号 报 警 。 被 0除 和 溢 出 错 误 会 卷 回 语 句 并 用 信 息 报 警 。 如 果 新 值 的 长 度 比 字 符 、 Uni c o d e 或二 进 制 列 的 长 度 还 长 , 将 终 止 INS E R T 和 UP D A T E 语 句 。

如 果 集 合 函 数 中 有 NU L L, SE T A N S I _ W A R N I N G S 置 O F F 不 会 用 信 号 报 警 。 被 0除 或 溢 出 错 误 返 回 NU L L。 如 果 新 值 的 长 度 比 字 符 、 Uni c o d e 或 二 进 制 列 的 长 度

Page 348: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

还 长 , IN S E R T 语 句 与 UP D A T E 语 句 将 返 回 NU L L。语 法

S E T A N S I _ W A R N I N G S { O N | O F F }

S E T A R I T H A B O R T

如 果 SET A R I T H A B O R T 置 O N, 被 0 除 或 溢 出 错 误 将 导 致 Tra n s a c t - S Q L 终 止和 / 或 卷 回 事 务 处 理 。

如 果 SET A R I T H A B O R T 置 O F F , 被 0 除 或 溢 出 错 误 就 用 信 号 报 警 , 但 是Tra n s a c t - S Q L 继 续 执 行 。

语 法

S E T A R I T H A B O R T { O N| O F F }

S E T A R I T H I G N O R E

如 果 SET A R I T H I G N O R E 和 SE T A N S I _ W A R N I N G S 都 设 置 为 OF F, 对 被 0 除 和 算术 溢 出 错 误 都 不 会 发 出 警 告 。

Page 349: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

语 法

S E T A R I T H I G N O R E { O N | O F F }

S E T C O N C A T _ N U L L _ Y I E L D S _ N U L L

S E T C O N C A T _ N U L L _ Y I E L D S _ N U L L 置 O N 时 , 将 字 符 串 与 NULL 值 并 置 , 会 返 回NU L L。

SE T C O N C A T _ N U L L _ Y I E L D S _ N U L L 置 O F F 时 , 将 字 符 串 与 NU L L 值 并 置 , 会 返回 字 符 串 。

语 法

S E T C O N C A T _ N U L L _ Y I E L D S _ N U L L { O N| O F F }

S E T C U R S O R _ C L O S E _ O N _ C O M M I T

S E T C U R S O R - C L O S E - O N - C O M M I T 置 O N 时 , 将 关 闭 委 托 上 打 开 的 游 标 。 SE TC U R S O R _ C L O S E _ O N _ C O M M I T 置 O F F 时 , 不 关 闭 委 托 上 打 开 的 游 标 。

语 法

Page 350: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T C U R S O R _ C L O S E _ O N _ C O M M I T { O N | O F F }

S E T D A T E F I R S T

S E T D A T E F I R S T 规 定 一 星 期 中 的 第 一 天 , 其 中 1 表 示 周 一 , 2 表 示 周 二 , 等等 从 1 到 7 的 数 字 。 美 国 英 语 缺 省 为 7(周 日 )。

语 法

S E T D A T E F I R S T { n u m b e r| @ n u m b e r _ v a r }

变 量 num b e r| @n u m b e r _ v a r 是 一 个 整 数 , 美 国 英 语 中 缺 省 为 周 日 。

S E T D A T E F O R M A T

S E T D A T E F O R M A T 决 定 日 期 数 据 类 型 中 日 期 部 分 , 月 、 日 、 年 的 顺 序 。语 法

S E T D A T E F O R M A T { f o r m a t| @ f o r m a t _ v a r }

Page 351: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 fo r m a t| @f o r m a t _ v a r 的 有 效 值 为 mdy , d m y , y m d , y d m , m y d 和 dym , 美 国英 语 中 缺 省 为 md y。

S E T D E A D L O C K _ P R I O R I T Y

S E T D E A D L O C K _ P R I O R I T Y 确 定 死 锁 时 当 前 对 话 中 发 生 的 情 况 。语 法

S E T D E A D L O C K _ P R I O R I T Y { L O W | N O R M A L | @ d e a d l o c k _ v a r }

变 量

L O W L O W 将 当 前 对 话 选 择 为 死 锁 牺 牲 品 , 并 返 回 事 务 处理 。

NO R M A L N O R M A L 允 许 SQ L S e r v e r 根 据 缺 省 情 形 决 定 死 锁 牺牲 品 。

@de a d l o c k _ v a r @ d e a d l o c k _ v a r 是 一 个 字 符 串 变 量 。

S E T D I S A B L E _ D E F _ C N S T _ C H K

此 设 置 只 为 了 向 后 兼 容 , 此 版 本 中 它 不 能 置 为 ON。

Page 352: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T F I P S _ F L A G G E R

S E T F I P S _ F L A G G E R 用 基 于 SQL - 9 2 标 准 的 FIP S 1 2 7 - 2 标 准 控 制 警 告 信 息 的兼 容 阈 级 。

语 法

S E T F I P S _ F L A G G E R ′ l e v e l ′

变 量 level 必 须 是 ENT R Y、 FU L L、 IN T E R M E D I A T E 或 OFF。

S E T F M T O N L Y

S E T F M T O N L Y 置 O N 不 返 回 行 , 只 返 回 元 数 据 。语 法

S E T F M T O N L Y { O N| O F F }

Page 353: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T F O R C E P L A N

S E T F O R C E P L A N 指 示 SQ L S e r v e r 按 照 连 接 表 在 FR O M 子 句 中 的 顺 序 进 行 连 接 。语 法S E T F O R C E P L A N { O N | O F F }

S E T I D E N T I T Y _ I N S E R T

S E T I D E N T I T Y _ I N S E R T 置 ON 允 许 将 用 户 定 义 的 值 插 入 到 标 识 列 中 。语 法

S E T I D E N T I T Y _ I N S E R T [ d a t a b a s e .[ o w n e r .]] { t ab l e } { O N| O F F }

变 量

d a t a b a s e d a t a b a s e 指 数 据 库 名 称 。Ow n e r o w n e r 指 作 用 表 格 的 拥 有 者 。Ta b l e t a b l e 为 包 含 标 识 列 的 表 格 名 称 。

Page 354: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T I M P L I C I T _ T R A N S A C T I O N S

S E T I M P L I C I T _ T R A N S A C T I O N S 置 O n 可 将 连 接 设 置 为 隐 式 事 务 处 理 模 式 , 这表 示 如 果 连 接 不 在 事 务 处 理 中 , FE T C H、 DR O P、 OP E N、 DE L E T E、 S E L E C T、 R E V O K E、C R E A T E、 A L T E R T A B L E、 TR U N C A T E T A B L E、 GRANT 、 IN S E R T、 U P D A T E 启 动 事 务 处理 。 如 果 设 置 为 OF F, 连 接 就 处 于 自 动 务 物 处 理 模 式 中 。

语 法

S E T I M P L I C I T _ T R A N S A C T I O N S { O N| O F F }

S E T L A N G U A G E

S E T L A N G U A G E 可 根 据 日 期 格 式 和 系 统 信 息 来 决 定 对 话 中 的 语 言 。语 法

S E T L A N G U A G E { l a n g u a g e| @ l a n g u a g e _ v a r }

变 量 la n g u a g e| @l a n g u a g e _ v a r 是 sys l a n g u a g e 系 统 表 中 的 语 言 名 称 。 此变 量 必 须 是 sy s n a m e 数 据 类 型 。

Page 355: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T L O C K _ T I M E O U T

S E T L O C K _ T I M E O U T 是 过 程 需 要 锁 定 的 资 源 时 等 待 的 毫 秒 数 。语 法

S E T L O C K _ T I M E O U T [ t i m e o u t _ p e r i o d ]

变 量 tim e o u t _ p e r i o d 为 释 放 锁 定 或 返 回 错 误 前 的 毫 秒 数 , 缺 省 值 -1 表 示 不等 待 。

S E T N O C O U N T

S E T N O C O U N T 置 O N 可 使 行 计 数 的 信 息 性 消 息 不 在 结 果 集 中 显 示 。语 法

S E T N O C O U N T { O N | O F F }

Page 356: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T N O E X E C

S E T N O E X E C 置 O N 将 不 执 行 后 面 SET N O E X E C 置 O F F 前 的 Tr a n s a c t - S Q L 语 句 ,但 是 这 些 语 句 仍 会 进 行 编 译 。

语 法

S E T N O E X E C { O N| O F F }

S E T N U M E R I C _ R O U N D A B O R T

在 表 达 式 中 ,当 圆 整 到 列 中 的 精 度 比 结 果 的 精 度 低 ,SET N U M E R I C _ R O U N D A B O R T置 O N 就 会 出 错 。

语 法

S E T N U M E R I C _ R O U N D A B O R T { O N | O F F }

Page 357: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T O F F S E T S

S E T O F F S E T S 用 于 DB - L i b r a r y 应 用 程 序 中 , 返 回 与 用 户 定 义 的 语 句 开 头 有关 的 位 置 , 此 开 头 是 用 逗 号 分 开 的 Tra n s a c t - S Q L 关 键 词 列 表 , 这 些 关 键 词 可 以是 :SEL E C T , FRO M , OR D E R , COM P U T E , TA B L E , PRO C E D U R E , ST A T E M E N T , P A R A M和 E X E C U T E。

语 法

S E T O F F S E T S k e y w o r d _ l i s t

变 量 key w o r d _ l i s t 是 用 逗 号 分 开 的 Tra n s a c t - S Q L 关 键 词 列 表 。

S E T P A R S E O N L Y

S E T P A R S E O N L Y 检 查 语 法 但 不 编 译 或 执 行 Tra n s a c t - S Q L 语 句 。语 法

S E T P A R S E O N L Y { O N | O F F }

Page 358: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T P R O C I D

如 果 使 用 SET P R O C I D O N, 在 发 送 存 储 过 程 生 成 的 结 果 集 前 , 要 将 该 存 储 过程 的 标 识 符 号 发 送 到 DB_ L i b r a r y 应 用 程 序 。

语 法

S E T P R O C I D { O N | O F F }

S E T Q U E R Y _ G O V E R N O R _ C O S T _ L I M I T

如 果 变 量 为 0, SET Q U E R Y _ G O V E R N O R _ C O S T _ L I M I T 将 允 许 执 行 所 有 的 查 询 程序 ; 如 果 查 询 值 比 变 量 提 供 的 整 数 值 大 , 就 不 执 行 查 询 。

语 法

S E T Q U E R Y _ G O V E R N O R _ C O S T _ L I M I T v a l u e

变 量 value 是 一 整 数 。

Page 359: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T Q U O T E D _ I D E N T I F I E R

如 果 使 用 SET Q U O T E D _ I D E N T I F I E R O N , 就 允 许 标 识 符 名 称 作 为 关 键 词 , 如果 标 识 符 名 称 放 到 双 引 号 中 , 还 可 以 包 含 专 用 字 符 。 文 字 必 须 放 在 单 引 号 中 。文 字 中 也 可 能 包 含 单 引 号 , 此 时 , 可 用 两 个 单 引 号 代 替 单 引 号 以 防 出 现 语 法 错误 。

如 果 使 用 SET Q U O T E D _ I D E N T I F I E R O F F, 标 识 符 名 称 不 能 加 双 引 号 , 而 且 必须 按 规 则 执 行 , 而 文 字 可 以 放 在 一 对 单 引 号 或 双 引 号 中 , 如 果 在 双 引 号 中 引 用文 字 , 文 字 中 还 可 以 包 括 单 引 号 。 如 果 在 存 储 过 程 中 使 用 SE TQ U O T E D _ I D E N T I F I E R , 可 以 忽 略 上 述 情 况 。 用 于 存 储 过 程 的 SE TQ U O T E D _ I D E N T I F I E R 取 决 于 编 译 时 的 设 置 。 sp_d b o p t i o n 存 储 过 程 使 用 引 用 的 标识 符 变 量 也 会 影 响 该 设 置 。

由 于 SET Q U O T E D _ I D E N T I F I E R 改 变 了 双 引 号 的 功 能 , 所 以 可 能 引 起 混 乱 。因 此 , 最 好 一 直 使 用 单 引 号 定 界 文 字 串 , 使 用 方 括 号 ([ ,] )可 获 得 和 Qu o t e dI d e n t i f i e r s 相 同 的 功 能 , 且 不 需 改 变 双 引 号 的 使 用 规 则 。 这 一 点 和 其 他 系 统存 储 过 程 参 阅 Cha p t e r 2 3。

语 法

S E T Q U O T E D _ I D E N T I F I E R { O N | O F F }

Page 360: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T R E M O T E _ P R O C _ T R A N S A C T I O N S

如 果 使 用 SET R E M O T E _ P R O C _ T R A N S A C T I O N S O N, 注 意 执 行 远 程 存 储 过 程 时 ,Mic r o s o f t D i s t r i b u t e d T r a n s a c t i o n C o o r d i n a t o r( M S D T C) 会 启 动 分 布 式 事务 处 理 。

如 果 用 SET R E M O T E _ P R O C _ T R A N S A C T I O N S O F F, 注 意 不 会 启 动 分 布 式 事 务 处理 。

语 法

S E T R E M O T E _ P R O C _ T R A N S A C T I O N S { O N| O F F }

S E T R O W C O U N T

如 果 使 用 SE T R O W C O U N T, 并 将 它 设 置 为 特 定 的 数 , 返 回 行 后 , 查 询 将 退 出处 理 过 程 。

语 法

S E T R O W C O U N T { n u m b e r| @ n u m b e r _ v a r }

变 量 num b e r| @n u m b e r _ v a r 是 一 整 数 。

Page 361: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T S H O W P L A N _ A L L

如 果 使 用 SET S H O W P L A N _ A L L O N, 将 不 执 行 Tra n s a c t - S Q L 语 句 。 返 回 的 是信 息 , 而 不 是 查 询 优 化 程 序 计 划 如 何 执 行 Tran s a c t - S Q L 语 句 , 也 不 是 基 于 价 值的 优 化 程 序 的 查 询 值 。 将 SET S H O W P L A N _ A L L 写 入 可 格 式 化 输 出 , 其 方 式 与 程 序扫 描 和 处 理 输 出 的 方 式 一 致 。

语 法

S E T S H O W P L A N _ A L L { O N | O F F }

S E T S H O W P L A N _ T E X T

如 果 使 用 SET S H O W P L A N _ T E X T O N, 就 不 会 执 行 Tra n s a c t - S Q L 语 句 。 返 回 的将 是 信 息 , 而 不 是 优 化 程 序 计 划 如 何 执 行 Tran s a c t - S Q L 语 句 。 此 版 本 的 显 示 图样 用 于 人 们 处 理 并 检 查 输 出 。

语 法

S E T S H O W P L A N _ T E X T { O N| O F F }

Page 362: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T S T A T I S T I C S I O

如 果 使 用 SET S T A T I S T I C S I O O N, 将 显 示 表 格 名 称 、 扫 描 计 数 、 逻 辑 读 取 (从数 据 高 速 缓 存 中 读 取 的 页 数 ), 物 理 读 取 (从 磁 盘 中 读 取 的 页 数 ),和 超 前 读 取 (放在 查 询 高 速 缓 存 中 的 页 数 )的 信 息 。

语 法

S E T S T A T I S T I C S I O { O N| O F F }

S E T S T A T I S T I C S P R O F I L E

S E T S T A T I S T I C S P R O F I L E 显 示 ad h o c 查 询 、 视 图 、 触 发 器 和 存 储 过 程 的 简要 信 息 。

语 法

S E T S T A T I S T I C S P R O F I L E { O N| O F F }

Page 363: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T S T A T I S T I C S T I M E

如 果 使 用 SET S T A T I S T I C S T I M E O N, 将 显 示 分 析 、 编 译 和 执 行 Tra n s a c t - S Q L语 句 所 用 的 毫 秒 数 。

语 法

S E T S T A T I S T I C S T I M E { O N | O F F }

S E T T E X T S I Z E

将 SET T E X T S I Z E 置 为 用 户 定 义 的 数 值 , 当 执 行 SE L E C T 语 句 时 , 会 将 要 显示 的 和 ntext 数 据 类 型 的 长 度 设 置 为 该 数 值 。

语 法

S E T T E X T S I Z E { n u m b e r| @ n u m b e r _ v a r }

变 量 num b e r| @n u m b e r _ v a r 是 最 大 为 2G B 的 整 数 。

Page 364: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T T R A N S A C T I O N I S O L A T I O N L E V E L

如 果 使 用 SET T R A N S A C T I O N I S O L A T I O N L E V E L, 并 将 其 设 置 下 面 可 用 选 项 之一 : R E A D C O M M I T T E D, RE A D U N C O M M I T T E D, RE P E A T A B L E R E A D 或 SE R I A L I Z A B L E缺 省 的 事 务 处 理 锁 定 将 变 化 为 当 前 对 话 中 SEL E C T 语 句 的 选 定 项 。

语 法

S E T T R A N S A C T I O N I S O L A T I O N L E V E L{ R E A D C O M M I T T E D | R E A D U N C O M M I T T E D | R E P E A T A B L E R E A D |S E R I A L I Z A B L E }

变 量

R E A D C O M M I T T E D R E A D C O M M I T T E D 是 存 储 SE L E C T 语 句 的 共 享 锁 定 的隔 离 级 别 , 是 Mic r o s o f t S Q L S e r v e r 的 缺 省 值 。此 隔 离 级 别 预 防 无 效 读 取 , 表 示 没 有 读 取 未 提 交 的数 据 。 该 隔 离 级 别 可 能 造 成 非 重 复 性 读 取 的 情 形 ,这 表 示 其 他 对 话 可 以 改 变 数 据 , 如 果 重 读 数 据 , 事务 处 理 结 束 前 数 据 可 能 已 发 生 改 变 。 此 事 务 处 理 也可 能 产 生 幻 象 数 据 , 这 表 示 事 务 处 理 结 束 前 可 以 添加 新 数 据 。

Page 365: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

R E A D U N C O M M I T T E D R E A D U N C O M M I T T E D ( 也 叫 0 隔 离 级 别 )允 许 无 效 读取 。 此 隔 离 级 别 不 进 行 锁 定 , 并 忽 略 其 他 用 户 所 做的 独 占 锁 定 , 结 果 造 成 无 效 读 取 , 非 重 复 性 读 取 和幻 象 数 据 。 和 使 用 NO L O C K 一 样 , 此 隔 离 级 别 提 供的 并 行 性 最 多 , 一 致 性 最 少 。

REP E A T A B L E R E A D R E P E A T A B L E R E A D 隔 离 级 别 通 过 在 当 前 事 务 处 理 所使 用 的 所 有 数 据 上 设 置 锁 定 , 来 阻 止 其 他 用 户 更 新数 据 , 可 是 , 仍 可 能 出 现 幻 象 行 。 此 选 项 可 能 对 并行 性 有 消 极 影 响 , 使 用 时 应 注 意 , 不 必 要 时 尽 量 不用 。

SER I A L I Z A B L E S E R I A L I Z A B L E 隔 离 级 别 通 过 在 数 据 上 设 置 一 定 范 围的 锁 定 , 来 阻 止 其 他 用 户 更 新 事 务 处 理 所 使 用 的 数据 , 或 防 止 插 入 新 行 。 它 提 供 的 并 行 性 最 少 , 一 致性 最 高 , 但 是 使 用 时 应 注 意 , 因 为 它 会 影 响 其 他 用户 , 并 对 并 行 性 有 消 极 影 响 , 这 些 方 面 和 使 用HO L D L O C K 相 同 。

S E T X A C T _ A B O R T

如 果 使 用 SET X A C T _ A B O R T O N, 当 前 事 务 处 理 将 卷 回 执 行 期 间 的 错 误 。语 法

Page 366: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S E T X A C T _ A B O R T { O N | O F F }

S E T U S E R

建 议 不 在 Mic r o s o f t S Q L S e r v e r 中 使 用 SETU S E R, 它 只 向 后 兼 容 。 SET U S E R函 数 由 系 统 管 理 员 和 数 据 库 的 拥 有 者 使 用 , 以 便 假 定 其 他 用 户 的 许 可 。

语 法

S E T U S E R [ ′ u s e r n a m e′ [ W I T H N O R E S E T ]]

变 量

′ user n a m e′ S A 或 DB O 假 定 许 可 的 安 全 帐 户 名 。 如 此 变 量没 有 提 供 为 一 个 参 数 , 假 定 为 最 初 的 等 同 值 。

WIT H N O R E S E T W I T H N O R E S E T 不 需 使 用 所 提 供 的 用 户 名 , 确定 后 来 发 布 的 SET U S E R 语 句 , 不 重 置 为 SA 或DB O。

Page 367: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S H U T D O W N

S H U T D O W N 命 令 停 止 Mic r o s o f t S Q L S e r v e r。语 法

S H U T D O W N [ WI T H N O W A I T]

变 量 WIT H N O W A I T 在 停 止 SQL S e r v e r 前 不 完 成 检 验 点 。 正 执 行 的 所 有 事 务处 理 都 将 卷 回 。

S I G N

如 果 表 达 式 为 正 , SI G N 函 数 返 回 1; 如 果 表 达 式 为 负 , SI G N 函 数 返 回 -1,如 果 表 达 式 为 0, SI G N 函 数 返 回 0。

语 法

S I G N ( n u m e r i c _ e x p r e s s i o n )

变 量 num e r i c _ e x p r e s s i o n 可 以 是 小 数 、 浮 点 数 、 整 型 数 、 货 币 、 数 字 、 实数 、 短 整 型 数 、 小 货 币 , 或 微 短 整 型 数 。

Page 368: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S I N

系 统 存 储 过 程 SIN 显 示 角 度 的 三 角 正 弦 值 , 角 度 是 以 弧 度 表 示 的 浮 点 表 达式 。

语 法

S I N ( f l o a t _ e x p r e s s i o n )

变 量 flo a t _ e x p r e s s i o n 是 浮 点 数 据 类 型 的 表 达 式 。

s m a l l d a t e t i m e

参 阅 本 章 的 “ Dat a T y p e s”。

s m a l l i n t

参 阅 本 章 的 “ Dat a T y p e s”。

Page 369: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

s m a l l m o n e y

参 阅 本 章 的 “ Dat a T y p e s”。

S O M E| A N Y

S O M E 也 称 作 AN Y, 如 果 初 始 表 达 式 的 比 较 和 子 查 询 程 序 中 至 少 有 一 个 值 返回 真 , SO M E 和 ANY 都 为 真 , 否 则 , 就 返 回 假 。

语 法

s c a l a r _ e x p r e s s i o n { = | < > | != | > | > = | !> | < | < = | ! < }{ S O M E| A N Y } ( s u b q u e r y )

变 量

s c a l a r _ e x p r e s s i o n s c a l a r _ e x p r e s s i o n 是 任 意 有 效 的 SQ L 表 达 式 。{= | <> | != | > |>=| !>| <| <=| !< }

这 些 是 可 用 于 比 较 操 作 的 Mic r o s o f t S Q L S e r v e r运 算 符 。

SO M E| AN Y S O M E 或 ANY 为 关 键 词 , 表 示 要 进 行 比 较 。Su b q u e r y 用 于 此 处 的 SUB Q U E R Y 只 能 返 回 和 变 量 列 表 中

sca l a r _ e x p r e s s i o n 的 数 据 类 型 相 同 的 一 列 。

Page 370: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S O U N D E X

S O U N D E X 用 于 确 定 两 个 字 符 串 的 发 音 是 否 相 似 , 并 返 回 4 个 字 符 的 代 码 。 代码 的 第 一 字 节 是 一 个 字 符 , 表 示 变 量 的 第 一 个 字 母 。 其 余 的 代 码 包 括 数 字 。 元音 忽 略 不 计 , 除 非 元 音 位 于 字 符 串 的 开 头 。 字 母 y, 双 字 母 和 字 母 h 也 不 考 虑 。相 关 的 函 数 有 DIF F E R E N C E 函 数 。 参 阅 本 章 的 “ DIF F E R E N C E”。

语 法

S O U N D E X ( c h a r a c t e r _ e x p r e s s i o n )

变 量 cha r a c t e r _ e x p r e s s i o n 是 一 个 字 符 串 , 它 可 以 是 变 量 、 常 数 或 表 格 中的 列 。

示 例下 面 是 SOU N D E X 函 数 的 示 例 :

S E L E C T S O U N D E X ( ′ F O R E X ′ ), S O U N D E X (′ F O R X ′ )

本 例 中 ,′ FO R E X′ 和 ′ FO R X′ 的 返 回 值 都 为 F6 2 0,因 为 它 们 发 音 非 常 相 似 。

Page 371: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S P A C E

S P A C E 返 回 一 串 重 复 的 空 格 , 然 而 , 如 果 要 在 Uni c o d e 数 据 中 包 含 空 格 , 用REP L I C A T E 函 数 代 替 SP A C E。

语 法

S P A C E ( i n t e g e r _ e x p r e s s i o n )

变 量 int e g e r _ e x p r e s s i o n 为 一 整 数 。 如 果 int e g e r _ e x p r e s s i o n 为 负 数 ,此 函 数 返 回 NU L L。

S Q U A R E

S Q U A R E 为 一 函 数 , 它 将 浮 点 数 据 类 型 的 值 与 其 自 身 相 乘 。语 法

S Q U A R E ( f l o a t _ e x p r e s s i o n )

变 量 flo a t _ e x p r e s s i o n 是 一 个 浮 点 型 数 据 。

Page 372: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S Q R T

S Q R T 是 返 回 浮 点 型 数 据 的 平 方 根 的 函 数 。语 法

S Q R T ( f l o a t _ e x p r e s s i o n )变 量 flo a t _ e x p r e s s i o n 是 一 个 浮 点 型 数 据 。

S T A T S _ D A T E

S T A T S _ D A T E 是 返 回 最 后 一 次 更 新 索 引 的 统 计 日 期 及 时 间 的 函 数 。语 法

S T A T S _ D A T E ( t a b l e _ i d , i n d e x _ i d )

变 量

t a b l e _ i d t a b l e _ i d 是 表 格 的 OBJ E C T _ I D。i n d e x _ i d i n d e x _ i d 是 索 引 的 indid。

Page 373: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S T D E V

S T D E V 是 一 个 返 回 标 准 偏 差 的 集 合 函 数 。 它 与 其 他 集 合 函 数 (如 SU M 函 数 )大体 相 同 , 只 适 用 于 数 值 型 数 据 类 型 。 在 所 提 供 的 列 中 , 会 排 除 输 入 数 据 集 中 的NU L L 值 。

语 法

S T D E V ( e x p r e s s i o n )

变 量 exp r e s s i o n 可 以 是 一 个 常 量 、 列 名 或 函 数 , 也 可 以 包 含 运 算 符 。示 例下 面 是 STD E V 的 示 例 :

S E L E C T S T D E V ( M y N u m e r i c C o l u m n )F R O M M y T a b l e

本 例 中 , 返 回 MyTa b l e 表 的 MyN u m e r i c C o l u m n 列 中 所 有 数 值 的 标 准 偏 差 。

S T D E V P

S T D E V P 是 返 回 人 口 标 准 偏 差 的 集 合 函 数 。 该 函 数 与 其 他 集 合 函 数 ( 如 SU M

Page 374: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

函 数 ) 大 体 相 同 , 只 适 用 于 数 值 型 数 据 , 并 忽 略 NU L L 值 。语 法S T D E V P ( e x p r e s s i o n )

变 量 exp r e s s i o n 可 以 是 一 个 常 量 、 列 名 或 函 数 , 也 可 以 包 含 运 算 符 。示 例下 面 是 STD E V P 函 数 的 示 例 :

S E L E C T S T D E V P ( M y N u m e r i c C o l u m n )F R O M M y T a b l e

本 例 中 , 返 回 MyTa b l e 表 的 My T a b l e C o l u m n 列 中 所 有 数 值 的 人 口 标 准 偏 差 。

S T R

S T R 可 将 数 值 型 数 据 转 换 为 字 符 型 数 据 , 并 返 回 字 符 型 数 据 。 它 提 供 的 功 能比 CA S T 函 数 更 广 泛 , 因 为 它 允 许 控 制 小 数 的 格 式 。 如 果 长 度 不 够 则 返 回 星 号 。

语 法

S T R ( f l o a t _ e x p r e s s i o n[ , l eng th [ , d e c i m a l]] )

变 量

Page 375: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

f l o a t _ e x p r e s s i o n f l o a t _ e x p r e s s i o n 是 浮 点 型 表 达 式 , 可 以 包 含小 数 点 。

Le n g t h l e n g t h 是 想 要 的 字 符 串 的 总 长 度 。 如 果 没 有 提供 这 个 可 选 变 量 部 分 , 缺 省 值 为 10。

De c i m a l d e c i m a l 是 小 数 点 右 边 的 位 数 。

S T U F F

S T U F F 函 数 可 以 将 字 符 表 达 式 的 一 部 分 用 所 提 供 的 另 一 个 字 符 串 替 代 , 替 代部 分 用 起 始 位 置 和 长 度 来 定 义 。

语 法

S T U F F ( c h a r a c t e r _ e x p r e s s i o n , s t a r t , l e n g t h , c h a r a c t e r _ e x p r e s s i o n )

变 量

c h a r a c t e r _ e x p r e s s i o n c h a r a c t e r _ e x p r e s s i o n 可 以 是 字 符 或 二 进 制型 常 量 、 变 量 或 列 。

St a r t s t a r t 是 定 义 要 替 换 的 字 符 表 达 式 的 起 始 位 置的 整 数 。 如 该 变 量 为 负 值 或 大 于 字 符 表 达 式 的总 长 , 则 返 回 NULL。

Page 376: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

L e n g t h l e n g t h 是 决 定 要 替 换 的 字 符 数 的 整 数 。示 例下 面 是 STU F F 函 数 的 示 例 :

S E L E C T S T U F F (′ M y d o g F i d o′ , 8 , 4 , ′ Sa l ly ′ )G O

本 例 中 , 从 第 8 个 字 符 起 , 删 去 4 个 字 符 “ Fi d o”, 并 在 原 位 置 处 插 入 5 个字 符 “ Sal l y”。 这 正 是 STU F F 名 称 的 由 来 。 如 果 愿 意 , 替 换 的 字 符 串 的 字 节 数可 以 多 于 、 等 于 或 少 于 被 替 换 的 字 符 串 的 字 节 数 。

S U B S T R I N G

S U B S T R I N G 函 数 返 回 字 符 型 、 二 进 制 型 、 文 本 或 图 形 表 达 式 的 一 部 分 。语 法

S U B S T R I N G ( e x p r e s s i o n , s t a r t , l e n g t h )

变 量

e x p r e s s i o n e x p r e s s i o n 可 以 是 字 符 串 、 二 进 制 串 、 文 本 、 图形 或 列 名 ;但 不 是 集 合 函 数 。

Page 377: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

S t a r t s t a r t 是 表 明 开 始 截 取 表 达 式 的 位 置 的 整 数 。Le n g t h l e n g t h 是 决 定 表 达 式 截 取 长 度 的 整 数 。

示 例下 面 是 SUB S T R I N G 函 数 的 示 例 :

S E L E C T S U B S T R I N G (′ M i c r o s o f t′ , 6 , 4 )

本 例 中 , 返 回 表 达 式 Mi c r o s o f t 中 的 4 个 字 符 “ so f t”。

S U M

S U M 是 一 个 集 合 函 数 , 它 返 回 表 格 的 选 定 行 中 所 有 选 定 的 数 值 型 列 中 的 值 的总 和 , 或 只 返 回 表 格 的 选 定 行 中 所 有 选 定 的 数 值 型 列 中 的 DIST I N C T 值 。 表 格 的选 定 行 中 一 个 选 定 的 数 值 型 列 中 有 Nu l l 值 , 表 示 排 除 该 行 。

语 法

S U M ([ A L L | D I S T I N C T ] e x p r e s s i o n )

变 量

A l l A l l 关 键 字 DIS T I N C T 关 键 字 相 区 别 , 它 是 缺 省 值 ,表 示 对 所 有 选 定 的 值 求 和 。

Page 378: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

D I S T I N C T D I S T I N C T 关 键 字 用 来 确 定 只 对 独 有 值 求 和 。Exp r e s s i o n e x p r e s s i o n 是 任 意 有 效 的 、 返 回 数 值 的 SQL S e r v e r

表 达 式 , 但 不 能 是 集 合 函 数 和 子 查 询 程 序 。

S U S E R _ I D

S U S E R _ I D 函 数 返 回 SQL S e r v e r 用 户 的 标 识 号 。 它 只 用 于 向 后 兼 容 。 7. 0 版本 中 , 人 物 编 码 用 SUS E R _ S I D 代 替 。

语 法S U S E R _ I D ([ ′ log in ′ ] )

变 量 log i n 是 可 选 项 。 它 是 登 录 ID 的 名 称 。 如 果 没 有 提 供 该 变 量 , 则 默 认为 当 前 用 户 。

S U S E R _ N A M E

S U S E R _ N A M E 函 数 返 回 SQ L S e r v e r 用 户 的 登 录 ID 名 ,它 只 用 于 向 后 兼 容 。7. 0版 本 中 的 人 物 编 码 用 SUSE R _ S N A M E 代 替 。

语 法

S U S E R _ N A M E ([ s e r v e r _ u s e r _ i d ] )

Page 379: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 ser v e r _ u s e r _ i d 是 可 选 项 , 它 是 登 录 ID 号 。 如 果 没 有 提 供 该 变 量 ,则 默 认 为 当 前 用 户 。

S U S E R _ S I D

S U S E R _ S I D 返 回 用 户 所 提 供 的 Mic r o s o f t S Q L S e r v e r 安 全 帐 户 名 所 对 应 的安 全 标 识 号 ( 也 叫 SI D)。

语 法

S U S E R _ S I D ([ ′ log in ′ ] )

变 量 lo g i n 是 可 选 的 , 它 是 安 全 帐 户 名 称 。 如 果 没 有 提 供 该 变 量 , 则 默 认为 当 前 用 户 。

S U S E R _ S N A M E

S U S E R _ S N A M E 从 用 户 的 安 全 标 识 号( 也 称 SI D)中 返 回 Mic r o s o f t S Q L S e r v e r安 全 帐 户 名 。

语 法

S U S E R _ S N A M E ([ s e r v e r _ u s e r _ s i d ] )

Page 380: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 ser v e r _ u s e r _ i d 是 可 选 项 , 它 是 安 全 标 识 号 。 如 果 没 有 提 供 该 变 量 ,默 认 为 当 前 用 户 。

S Y S T E M _ U S E R

如 果 NT A u t h e n t i c a t i o n 用 来 验 证 用 户 , SYS T E M _ U S E R 函 数 就 提 供 NT 帐 户名 的 系 统 提 供 值 , 或 者 如 果 使 用 SQL S e r v e r A u t h e n t i c a t i o n, SY S T E M _ U S E R 函数 就 提 供 SQL S e r v e r 已 验 证 的 安 全 帐 户 名 的 系 统 提 供 值 。 这 个 函 数 可 以 用 作 常规 函 数 , 如 果 不 存 在 其 他 缺 省 值 , 它 就 是 插 入 表 格 的 缺 省 值 ;或 用 于 DE F A U L TC O N S T R A I N T 中 。

语 法

S Y S T E M _ U S E R

T A N

T A N 函 数 返 回 浮 点 变 量 的 正 切 值 。语 法

T A N ( f l o a t _ e x p r e s s i o n )

Page 381: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 flo a t _ e x p r e s s i o n 是 一 个 角 度 , 且 是 浮 点 或 实 型 数 据 。

t e x t

参 看 本 章 Da t a T y p e 部 分 。

T E X T P T R

T E X T P T R 函 数 用 来 指 向 第 一 个 文 本 页 , 并 以 变 长 二 进 制 型 数 据 返 回 。语 法

T E X T P T R ( c o l u m n )

变 量 col u m n 是 列 的 名 称 。

T E X T V A L I D

T E X T V A L I D 函 数 用 于 文 本 、 nt e x t 或 图 像 列 ,以 检 查 文 本 指 针 的 有 效 性 。 如 果 有效 , 则 返 回 1;无 效 则 返 回 0。 UP D A T E T E X T、 W R I T E T E X T 和 RE A D T E X T 都 依 赖 于 这一 函 数 的 使 用 。

语 法

Page 382: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T E X T V A L I D (′ t a b l e . c o l u m n′ , t ex t_p t r )

变 量

t a b l e t a b l e 是 表 格 名 称 。Co l u m n c o l u m n 是 列 名 称 。te x t _ p t r t e x t _ p t r 是 有 效 化 的 文 本 指 针 。

t i m e s t a m p

t i m e s t a m p 是 列 的 数 据 类 型 , 在 每 个 表 格 中 只 有 一 个 time s t a m p 列 , 它 包 含二 进 制 (8)型 值 (如 果 允 许 NU L L 值 存 在 , 则 可 包 含 var b i n a r y ( 8 )型 值 ), 该 值在 数 据 库 中 是 唯 一 的 。 每 次 插 入 或 更 新 行 时 , 都 要 更 新 该 列 。

t i n y i n t

参 看 本 书 “ Da t a T y p e” 部 分 。

Page 383: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T R I G G E R _ N E S T L E V E L

T R I G G E R _ N E S T L E V E L 返 回 表 格 中 对 应 UPD A T E、 IN S E R T 或 D E L E T E 操 作 的 所 执行 的 触 发 器 数 。

语 法

T R I G G E R _ N E S T L E V E L ([ o b j e c t _ i d ] )

变 量 obj e c t - i d 是 触 发 器 的 ID , 如 果 未 提 供 该 变 量 , 返 回 的 整 数 表 示UP D A T E、 I N S E R T 或 D E L E T E 操 作 中 所 有 触 发 器 被 激 活 的 次 数 。

T R U N C A T E T A B L E

T R U N C A T E T A B L E 语 句 删 除 表 格 中 所 有 未 注 册 的 行 , 但 不 激 活 触 发 器 。语 法T R U N C A T E T A B L E n a m e变 量 na m e 是 要 截 取 的 表 名 。

Page 384: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

T Y P E P R O P E R T Y

T Y P E P R O P E R T Y 函 数 以 字 符 型 或 二 进 制 型 数 据 的 属 性 形 式 返 回 信 息 的 类 型 。语 法

T Y P E P R O P E R T Y ( t y p e , p r o p e r t y )变 量

t y p e t y p e 数 据 类 型pr o p e r t y p r o p e r t y 可 以 是 以 下 几 种 :

pr e c i s i o n (数 字 位 数 或 字 符 数 )S c a l e (小 数 位 数 )Al l o w s N u l l ( 0 = F A L S E, 1= T R U E )U s e s A n s i T r i m ( 0 = F A L S E, 1 = T R U E )

U N I C O D E

U N I C O D E 函 数 返 回 变 量 第 一 个 字 节 的 Uni c o d e 标 准 整 数 值 。语 法U N I C O D E (′ nc h a r a c t e r _ e x p r e s s i o n′ )

Page 385: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 nch a r a c t e r - e x p r e s s i o n 是 n c h a r 或 nv a r c h a r 型 数 据 。

U N I O N

U N I O N 语 句 可 以 提 取 多 个 SEL E C T 语 句 的 结 果 , 并 合 并 这 些 结 果 。语 法s e l e c t _ s t a t e m e n tU N I O N [ A L L ]s e l e c t _ s t a t e m e n t[ U N I O N [ A L L ] s e l e c t _ s t a t e m e n t][ , . . .n]

变 量

s e l e c t _ s t a t e m e n t s e l e c t _ s t a t e m e n t 是 返 回 数 据 的 查 询 语 句 。UN I O N U N I O N 合 并 多 个 查 询 的 结 果 集 。AL L A L L 返 回 包 括 复 本 在 内 的 所 有 行 。 但 如 果 未 提 供

此 关 键 字 , 则 不 返 回 复 本 。N 表 明 前 述 项 目 是 可 重 复 的 。

示 例下 面 是 UNI O N 语 句 的 示 例 :

S E L E C T F i r s t N a m e , L a s t N a m e

Page 386: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M M y F i r s t T a b l eU N I O NS E L E C T F i r s t N a m e , L a s t N a m eF R O M M y S e c o n d T a b l e

本 例 中 , 合 并 了 MyFi r s t T a b l e 的 结 果 与 MyS e c o n d T a b l e 的 结 果 集 , 并 返 回一 个 数 据 集 。

u n i q u e i d e n t i f i e r

参 看 本 章 “ Dat a T y p e” 部 分 。

U P D A T E

U P D A T E 语 句 通 过 更 改 表 格 中 已 有 的 行 来 修 改 表 中 的 数 据 。语 法

U P D A T E { < t a b l e _ o r _ v i e w > }S E T{ c o l u m n _ n a m e = { e x p r e s s i o n | D E F A U L T }| @ v a r i a b l e = e x p r e s s i o n } [ , . . . n ]

Page 387: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

[ F R O M{< t a b l e _ o r _ v i e w >| ( s e l e c t _ s t a t e m e n t ) [ A S ] t a b l e _ a l i a s [ ( c o l u m n _ a l i a s [ ,...m ] )]| < t a b l e _ o r _ v i e w > C R O S S J O I N < t a b l e _ o r _ v i e w >| IN N E R [ < j o i n _ h i n t s >] J O I N< t a b l e _ o r _ v i e w > O N < j o i n _ c o n d i t i o n >| < r o w s e t _ f u n c t i o n >}[ , . . . n ]][ W H E R E< s e a r c h _ c o n d i t i o n s >| C U R R E N T O F{ { [ G L O B A L] c u r s o r _ n a m e } | c u r s o r _ v a r i a b l e _ n a m e } }][ O P T I O N ( < q u e r y _ h i n t s > , [ , . . . n ] )]< t a b l e _ o r _ v i e w > : : ={ t a b l e _ n a m e [[ A S] t a b l e _ a l i a s][ < t a b l e _ h i n t s > [ . . . m ] ]

| v i e w _ n a m e [[ A S ] t a b l e _ a l i a s ]

Page 388: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

}< t a b l e _ h i n t s > : : ={ I N D E X = { i n d e x _ n a m e | i n d e x _ i d } [ , ... n ]| FA S T F I R S T R O W| R E A D P A S T| { H O L D L O C K | P A G L O C K | R E A D C O M M I T T E D| R E A D U N C O M M I T T E D | R E P E A T A B L E R E A D| R O W L O C K | S E R I A L I Z A B L E | TA B L O C K | TA B L O C K X}< t a b l e _ h i n t s > : : ={ I N D E X ( i n d e x _ n a m e | i n d e x _ i d )| FA S T F I R S T R O W| H O L D L O C K| PA G L O C K| R E A D C O M M I T T E D| R E A D P A S T| R E A D U N C O M M I T T E D| R E P E A T A B L E R E A D| R O W L O C K| S E R I A L I Z A B L E| TA B L O C K| TA B L O C K X }

Page 389: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

< j o i n _ h i n t s > : : ={ H A S H | L O O P| M E R G E }

< q u e r y _ h i n t s > : : ={ { H A S H | O R D E R } G R O U P| { C O N C A T | H A S H | M E R G E } U N I O N| FA S T n u m b e r _ r o w s| F O R C E O R D E R| R O B U S T P L A N }< j o i n _ c o n d i t i o n > : : ={ t a b l e _ n a m e | t a b l e _ a l i a s | v i e w _ n a m e } . c o l u m n _ n a m e

< l o g i c a l _ o p e r a t o r >{ t a b l e _ n a m e | t a b l e _ a l i a s | v i e w _ n a m e } . c o l u m n _ n a m e

< l o g i c a l _ o p e r a t o r > : : ={= |> | < | > = | < = | < > | ! = | ! < | ! > }< r o w s e t _ f u n c t i o n > : : ={ O P E N Q U E R Y ( l i nked_se rve r , ′ q u e r y′ )| O P E N R O W S E T( ′ p r o v i d e r _ n a m e′ ,{ ′ d a t a s o u r c e′ ;′ use r_ id ′ ;′ p a s s w o r d ′ | ′ p r o v i d e r _ s t r i n g′ } ,

Page 390: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

{ [ c a t a l o g .][ s c h e m a .] o b j e c t _ n a m e | ′ q u e r y′ })}< s e a r c h _ c o n d i t i o n s > : : ={ [ N O T] < p r e d i c a t e > [ { A N D | O R }[ N O T ] < p r e d i c a t e >]} [ , . . . n ]< p r e d i c a t e > : : ={

e x p r e s s i o n { = | < > | ! = | > | > = | !> | < | < = | ! < } e x p r e s s i o n| s t r i n g _ e x p r e s s i o n [ N O T] L I K E s t r i n g _ e x p r e s s i o n[ E S C A P E ′ e s c a p e _ c h a r a c t e r′ ]| e x p r e s s i o n [ N O T ] B E T W E E N e x p r e s s i o n A N D e x p r e s s i o n

| e x p r e s s i o n I S [ N O T ] N U L L| e x p r e s s i o n [ N O T] IN ( s u b q u e r y| e x p r e s s i o n [ , . . . n ] )| e x p r e s s i o n { = | < > | != | > | > = | !> | <| < = | !< }{ A L L | S O M E| A N Y } ( s u b q u e r y )| E X I S T S ( s u b q u e r y )}

变 量

< t a b l e _ o r _ v i e w > t a b l e _ o r _ v i e w 是 表 或 视 图 名 的 标 题 。tab l e _ n a m e| vi e w _ n a m e t a b l e _ n a m e| vi e w _ n a m e 是 数 据 被 更 新 的 表

Page 391: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

或 视 图 的 名 称 。 只 能 更 新 视 图 中 的 一 个 表 。tab l e _ a l i a s a l i a s 是 表 或 视 图 的 简 短 名 称 。col u m n _ a l i a s c o l u m n _ a l i a s 是 列 标 题 的 别 名 。<ta b l e _ h i n t s > t a b l e _ h i n t s 指 示 SQ L S e r v e r 查 询 优 化 器

如 何 进 行 查 询 。 参 看 本 书 第 6 章 “ 新 优 化程 序 提 示 ”。

IND E X ( i n d e x _ n a m e| in d e x _ i d ) 如 果 给 出 了 索 引 优 化 器 提 示 , 该 索 引 用 以处 理 查 询 。

m m 表 明 列 的 别 名 可 重 复 。OP E N Q U E R Y O P E N Q U E R Y 运 行 通 过 查 询 。 参 看 本 章

“ OPEN Q U E R Y”。OPE N R O W S E T O P E N R O W S E T 包 含 连 接 的 定 义 以 使 用 数 据 源

中 的 远 程 数 据 。SE T SE T 关 键 字 后 面 的 列 是 要 更 新 的 列 。col u m n _ n a m e c o l u m n _ n a m e 是 格 式 为 fo r m 的 用 逗 号 分 隔

开 的 列 表 ,co l u m n _ n a m e =表 达 式 。Exp r e s s i o n 是 任 何 有 效 的 SQ L 表 达 式 。DE F A U L T D E F A U L T 将 某 列 中 的 值 设 置 成 由 DEFA U L T 约

束 为 该 列 定 义 的 缺 省 值 。@v a r i a b l e 已 声 明 的 局 部 变 量 , 设 置 为 表 达 式 返 回 的

值 。n n 表 示 前 述 各 项 可 重 复 。

Page 392: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

F R O M F R O M 确 定 用 来 为 UPD A T E 提 供 值 的 表 格 。CRO S S J O I N C R O S S J O I N 是 返 回 行 的 两 个 表 格 的 交 叉

积 。 就 好 象 没 有 WH E R E 子 句 一 样 。IN N E R I N N E R 连 接 是 缺 省 值 , 返 回 匹 配 的 行 。<jo i n _ h i n t s > < j o i n _ h i n t s >指 示 SQ L S e r v e r 连 接 的 运 行

策 略 。ON< j o i n _ c o n d i t i o n > O N < j o i n _ c o n d i t i o n >是 连 接 条 件 。WHE R E < s e a r c h _ c o n d i t i o n s > W H E R E < s e a r c h _ c o n d i t i o n s > 是 查 询 中 的 限

制 条 件 。CURR E N T O F C U R R E N T O F 是 游 标 的 当 前 位 置 , 指 向 修 改

后 的 行 。GL O B A L G L O B A L 表 明 游 标 是 一 个 全 局 游 标 。cur s o r _ n a m e c u r s o r _ n a m e 是 决 定 可 更 新 的 数 据 集 的 游 标

名 。cur s o r _ v a r i a b l e - n a m e c u r s o r _ v a r i a b l e - n a m e 是 游 标 变 量 的 名

称 。OPT I O N ( < q u e r y _ h i n t s > ,

< , . . . n > )O P T I O N ( < q u e r y _ h i n t s > , < , . . . n > ) 指 示 查询 优 化 器 如 何 优 化 查 询 , 然 而 , 通 常 无 须用 户 指 定 查 询 提 示 , SQ L S e r v e r 也 能 自 动进 行 优 化 。

{H A S H| OR D E R } G R O U P { H A S H| OR D E R } G R O U P 指 示 SQ L S e r v e r 在OR D E R B Y 或 CO M P U T E 子 句 中 对 集 合 运 算 使

Page 393: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

用 散 列 或 排 序 。{M E R G E| HAS H| CO N C A T } U N I O N { M E R G E | HAS H | CO N C A T } U N I O N 指 示 SQ L

S e r v e r 为 U N I O N 操 作 使 用 合 并 、 散 列 或 连接 。

FA S T n F A S T n ( n u m b e r _ o f _ r o w s ) 表 示 在 查 询 中 ,优 化 器 将 尽 快 返 回 前 n 行 , 之 后 继 续 返 回余 下 的 各 行 。

FOR C E O R D E R F O R C E O R D E R 指 示 SQ L S e r v e r 在 查 询 优 化过 程 中 保 持 查 询 语 法 中 指 定 的 连 接 顺 序 。

ROB U S T P L A N R O B U S T P L A N 指 示 SQ L S e r v e r 查 询 优 化 器为 可 能 的 最 多 行 数 建 立 查 询 计 划 。

示 例下 面 是 UPD A T E 语 句 的 示 例 :

U P D A T E M y T a b l eS E T C o l u m n 1 = b . C o l u m n 1F R O M M y T a b l e a ,M y T a b l e 2 bW H E R E a . M y I d = b . M y I d

在 本 例 中 , 若 MyT a b l e 和 M y T a b l e 2 表 的 My I d 列 中 各 行 具 有 相 匹 配 的 值 ,

Page 394: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

则 表 MyTa b l e 中 的 Col u m n 1 中 的 值 更 新 为 MyT a b l e 2 的 C o l u m n 1 中 的 值 。

U P D A T E S T A T I S T I C S

U P D A T E S T A T I S T I C S 语 句 更 新 与 表 格 索 引 相 关 的 系 统 表 中 的 信 息 。 这 些 信 息是 SQL S e r v e r 用 以 建 立 规 划 的 列 值 的 分 布 式 数 据 。 这 些 数 据 的 大 部 分 发 生 变 更后 , 就 应 更 新 这 些 数 据 。 另 外 , 用 户 也 可 以 利 用 自 动 统 计 功 能 完 成 这 一 步 ( 通过 sp_ a u t o s t a t s), 而 无 需 执 行 更 新 统 计 。

语 法

U P D A T E S T A T I S T I C S { t a b l e } [ i n d e x| ( i n d e x _ o r _ c o l u m n[ , . . .n] )][ W I T H [[ F U L L S C A N ] | S A M P L E n u m b e r { P E R C E N T| R O W S }]][[ ,] [ A L L | C O L U M N S | I N D E X ][[ ,] N O R E C O M P U T E ]]

变 量

t a b l e t a b l e 是 表 格 名 称 。In d e x i n d e x 是 索 引 名 称 。ind e x _ o r _ c o l u m n i n d e x _ o r _ c o l u m n 是 要 更 新 统 计 的 索 引 或 列 的

名 称 。 索 引 或 列 的 名 称 必 须 循 标 识 符 的 规 则 。只 有 设 定 了 IN D E X 或 CO L U M N 选 项 , 才 需 要ind e x _ o r _ c o l u m n 变 量 。

Page 395: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

N 表 示 前 述 各 项 可 重 复 。FU L L S C A N F U L L S C A N 对 表 格 的 全 部 内 容 进 行 浏 览 。, 而 不

是 对 表 格 取 样 。SAM P L E n u m b e r { P E R C E N T |R O W S }

S A M P L E n u m b e r { P E R C E N T| R O W S }表 示 表 格 中 行的 百 分 比 或 取 样 的 行 数 。 如 果 给 定 百 分 比 或 数目 太 小 , 显 示 效 果 不 佳 , 则 Mic r o s o f t S Q LS e r v e r 会 更 改 数 字 。

AL L| CO L U M N S| I N D E X A L L| C O L U M N S| IN D E X 确 定 列 统 计 式 、 数 字 、索 引 统 计 数 字 或 所 有 的 统 计 数 字 是 否 会 受 到 影响 , 缺 省 值 是 只 有 索 引 会 受 到 影 响 。

NOR E C O M P U T E N O R E C O M P U T E 禁 止 Mic r o s o f t S Q L S e r v e r 自动 重 建 统 计 , 禁 止 自 动 重 建 统 计 。 执 行sp_ a u t o s t a t s 系 统 存 储 过 程 , 或 运 行 不 带NORE C O M P U T E 的 UP D A T E S T A T I S T I C S 可 恢 复 统计 的 自 动 计 算 。

U P D A T E T E X T

U P D A T E T E X T 用 来 更 新 文 本 、 nte x t 或 图 像 列 的 一 部 分 。 WRI T E T E X T 用 来 替 代整 个 文 本 、 nt e x t 或 图 像 列 。

语 法

Page 396: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

U P D A T E T E X T { t a b l e _ n a m e . d e s t _ c o l u m n _ n a m e d e s t _ t e x t _ p t r }{ N U L L | i n s e r t _ o f f s e t } { N U L L | d e l e t e _ l e n g t h }[ W I T H L O G][ i n s e r t e d _ d a t a |[ { t a b l e _ n a m e . s r c _ c o l u m n _ n a m e s r c _ t e x t _ p t r } ]

变 量

t a b l e _ n a m e . d e s t _ c o l u m n _ n a m e t a b l e _ n a m e . d e s t _ c o l u m n _ n a m e 是 表 和 文本 、 nt e x t 或 图 像 列 的 名 称 。

des t _ t e x t _ p t r d e s t _ t e x t _ p t r 由 T E T X P T R 函 数 返 回 ,是 要 更 新 的 数 据 的 指 针 。

ins e r t _ o f f s e t i n s e r t _ o f f s e t 是 新 数 据 插 入 的 起 始 点 。如 果 第 一 个 字 符 的 偏 置 为 0, 第 二 个 字 符的 偏 置 就 为 1, 依 次 类 推 。 如 果 列 是 文 本或 图 像 列 , ins e r t _ o f f s e t 表 示 在 查 找 插入 数 据 的 点 之 前 , 要 从 列 首 开 始 传 送 的字 节 数 。 如 果 该 列 是 nte x t 型 数 据 ,ins e r t _ o f f s e t 表 示 字 符 数 , 而 不 是 字 节数 , 因 为 nt e x t 型 数 据 占 两 个 字 节 。 如果 提 供 的 是 0, 数 据 就 插 入 到 开 头 , 并 将NULL 追 加 到 数 据 的 末 尾 。

del e t e _ l e n g t h d e l e t e _ l e n g t h 是 要 删 除 的 字 符 数 。 如 果

Page 397: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

列 是 文 本 或 图 像 列 , del e t e _ l e n g t h 表 示在 查 找 要 删 除 的 数 据 的 点 之 前 , 要 从ins e r t _ o f f s e t 的 位 置 开 始 传 送 的 字 节数 。 如 果 该 列 是 nte x t 型 数 据 ,del e t e _ l e n g t h 表 示 字 符 数 , 而 不 是 字 节数 , 因 为 nt e x t 型 数 据 占 两 个 字 节 。 如果 提 供 的 是 0, 就 删 除 从 ins e r t _ o f f s e t到 数 据 的 末 尾 的 所 有 数 据 。

WI T H L O G W I T H L O G 指 定 记 录 UPD A T E T E X T 操 作 , 但快 速 增 加 记 录 文 件 的 尺 寸 。 如 果 没 有 提供 WI T H L O G, 就 必 须 打 开 sel e c t i n t o/ bu l k c o p y d a t a b a s e 选 项 , 该 选 项 可 以用 系 统 存 储 过 程 sp_ d b o p t i o n 打 开 。 请查 阅 23 章 的 系 统 存 储 过 程 。

ins e r t e d _ d a t a i n s e r t e d _ d a t a 表 示 要 在 ins e r t _ o f f s e t处 将 数 据 类 型 为 文 本 、 nt e x t 或 图 像 的 数据 插 入 到 列 中 。

tab l e _ n a m e . s r c _ c o l u m n _ n a m e 数 据 类 型 为 文 本 、 ntext 或 图 像 的 限 定 表的 列 名 , 其 中 包 含 要 插 入 的 数 据 。

src _ t e x t _ p t r 用 TEX T P T R 函 数 获 取 包 含 要 插 入 的 数 据的 文 本 、 nte x t 或 图 像 列 的 指 针 。

示 例

Page 398: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

下 面 是 UPD A T E T E X T 语 句 的 示 例 :

E X E C s p _ d b o p t i o n ′ M y D B ′ , ′ se lec t in to / b u l k c o p y′ , ′ t r u e′G OD E C L A E R @ p o i n t e r v a r b i n a r y ( 1 6 )S E L E C T @ p o i n t e r v a r = T E X T P T R ( M y T a b l e )F R O M M y T a b l e a , M y T a b l e 2 bW H E R E a . M y I D = b . M y I DU P D A T E T E X T M y T a b l e . M y C o l u m n @ p o i n t e r v a r 5 6 3 ′ C O M ′G OE X E C s p _ d b o p t i o n ′ M y D B ′ , ′ se lec t in to / b u l k c o p y′ , ′ fa lse ′G O

本 例 中 , TEXT P T R 放 在 一 个 局 部 变 量 中 , 更 新 了 My C o l u m n。

U P P E R

U P P E R 函 数 用 大 写 字 符 替 代 小 写 字 符 。语 法U P P E R ( c h a r a c t e r _ e x p r e s s i o n)变 量 cha r a c t e r _ e x p r e s s i o n 是 字 符 或 二 进 制 常 数 , 变 量 。

Page 399: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

U S E

U S E 确 定 要 使 用 的 数 据 库 。语 法

U S E { d a t a b a s e }

变 量 dat a b a s e 是 数 据 库 名 。

U S E R

该 语 句 与 US E R _ N A M E 相 同 。

U S E R _ I D

U S E R _ I D 是 系 统 函 数 , 它 返 回 用 户 的 数 据 库 用 户 标 识 号 。语 法

U S E R _ I D ([ ′ u s e r′ ])

Page 400: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 us e r 是 用 户 名 称 。

U S E R _ N A M E

U S E R _ N A M E 函 数 在 提 供 了 用 户 的 标 识 号 时 返 回 数 据 库 的 用 户 名 。语 法

U S E R _ N A M E([ id ])

变 量 id 是 用 户 的 标 识 号 。

V A R

V A R 是 集 合 函 数 , 它 返 回 数 值 列 或 表 达 式 中 所 有 值 的 变 体 。 如 果 列 中 的 值 为NU L L, 该 列 就 排 除 在 外 。

语 法

V A R ( e x p r e s s i o n )

变 量 exp r e s s i o n 是 一 个 常 数 、 列 名 或 函 数 , 它 可 以 包 含 运 算 符 , 但 不 能 包含 集 合 函 数 和 子 查 询 程 序 。

Page 401: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

v a r b i n a r y

请 查 阅 本 章 的 “ Da t a T y p e”。

v a r c h a r

请 查 阅 本 章 的 “ Da t a T y p e”。

V A R P

V A R P 是 一 个 集 合 函 数 , 它 返 回 数 值 列 或 表 达 式 中 所 有 值 的 个 数 变 体 。 如 果列 中 的 值 为 NU L L, 该 列 就 排 除 在 外 。

语 法

V A R P ( e x p r e s s i o n )

变 量 exp r e s s i o n 是 一 个 常 数 、 列 名 或 函 数 , 它 可 以 包 含 运 算 符 , 但 不 能 包含 集 合 函 数 和 子 查 询 程 序 。

Page 402: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

W A I T F O R

W A I T F O R 语 句 允 许 在 继 续 进 行 处 理 前 等 待 一 段 时 间 。语 法

W A I T F O R { D E L A Y ′ t i m e′ | T I M E ′ t i m e′ }

变 量

D E L A Y D E L A Y 是 一 个 关 键 字 , 后 跟 要 等 待 的 时 间 , 该 时 间 的最 大 值 为 24 小 时 。

′ ti m e′ ti m e 的 格 式 为 hh: m m : s s, 可 以 使 用 局 部 变 量 。TI M E T I M E 是 一 个 关 键 字 , 后 跟 要 等 到 的 时 刻 。

W H E R E

W H E R E 子 句 在 用 于 SE L E C T, UP D A T E, IN S E R T 或 D E L E T E 语 句 时 确 定 要 检 索 的行 。

语 法

W H E R E < s e a r c h _ c o n d i t i o n s >

Page 403: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

变 量 <se a r c h _ c o n d i t i o n s >定 义 语 句 所 影 响 的 行 的 限 制 条 件 。

W H I L E

W H I L E 为 sq l _ s t a t e m e n t 或 语 句 块 的 重 复 执 行 设 置 条 件 。 只 要 特 定 的 条 件 为真 , 这 些 语 句 就 一 直 重 复 执 行 。 WH I L E 循 环 中 语 句 的 执 行 可 由 循 环 内 的 BR E A K或 CO N T I N U E 关 键 字 来 控 制 。

语 法

W H I L E B o o l e a n _ e x p r e s s i o n{ s q l _ s t a t e m e n t | s t a t e m e n t _ b l o c k }[ B R E A K ]{ s q l _ s t a t e m e n t | s t a t e m e n t _ b l o c k }[ C O N T I N U E]

变 量

B o o l e a n _ e x p r e s s i o n B o o l e a n _ e x p r e s s i o n 返 回 TRU E 或FA L S E。

{s q l _ s t a t e m e n t | s t a t e m e n t _ b l o ck }

{ s q l _ s t a t e m e n t | s t a t e m e n t _ b l o c k } 是Tra n s a c t - S Q L 语 句 , 该 语 句 带 有 使 用

Page 404: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

B E G I N 和 E N D 语 法 的 块 。BR E A K B R E A K 从 WH I L E 循 环 中 退 出 。CO N T I N U E C O N T I N U E 跳 过 CON T I N U E 后 、 WH I L E 循 环

末 尾 前 的 语 句 , 从 WHI L E 循 环 的 开 头 执行 。

W R I T E T E X T

W R I T E T E X T 允 许 已 有 的 文 本 、 nt e x t 或 图 像 列 的 不 记 录 的 交 互 更 新 。 该 语 句完 全 覆 盖 了 它 所 操 作 的 列 中 的 任 何 已 有 数 据 。 WRI T E T E X T 不 能 用 于 视 图 中 的 文本 、 ntext 或 图 像 列 。 在 缺 省 状 态 下 , 不 记 录 WRI T E T E X T 语 句 , 因 此 , 事 务 处理 记 录 不 会 被 由 这 些 数 据 类 型 组 成 的 大 量 数 据 所 填 满 。

语 法

W R I T E T E X T { t a b l e . c o l u m n t e x t _ p t r }[ W I T H L O G] { da ta }

变 量

t a b l e . c o l u m n t a b l e . c o l u m n 是 文 本 、 nte x t 或 图 像 列 的 限 定 表名 。

te x t _ p t r 用 TE X T P T R 函 数 获 取 包 含 要 写 入 的 数 据 的 文 本 、

Page 405: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

n t e x t 或 图 像 列 的 指 针 。WI T H L O G W I T H L O G 指 定 记 录 WRI T E T E X T 操 作 , 但 记 录 文 件

的 尺 寸 会 迅 速 增 大 。 如 果 没 有 提 供 WI T H L O G, 就必 须 打 开 sel e c t i n t o/ bu l k c o p y d a t a b a s e 选项 , 该 选 项 可 以 用 系 统 存 储 程 序 sp_ d b o p t i o n 打开 。 请 查 阅 第 23 章 的 系 统 存 储 过 程 。

Da t a d a t a 是 要 写 入 数 据 库 的 文 本 、 nt e x t 或 图 像 型 数据 。 这 些 数 据 最 大 为 120KB。

示 例下 面 是 WRI T E T E X T 语 句 的 示 例 :

E X E C s p _ d b o p t i o n ′ M y D B ′ , ′ se lec t in to / b u l k c o p y′ , ′ t r u e′G OD E C L A R E @ p o i n t e r v a r b i n a r y ( 1 6 )S E L E C T @ p o i n t e r v a r = T E X T P T R ( M y T a b l e )F R O M M y T a b l e a , M y T a b l e 2 bW H E R E a . M y I D = b . M y I DW R I T E T E X T M y T a b l e . M y C o l u m n @ p o i n t e r v a r ′ T h e s e t y p e s o f c o l u m n sa r e u s e d t o h o l d l o n g t e x t n t e x t o r i m a g e d a t a a n d c a n h o l d u p t o 1 2 0k i l o b y t e s a t a t i m e .′G OE X E C s p _ d b o p t i o n ′ M y D B ′ , ′ se lec t in to / b u l k c o p y′ , ′ fa lse ′

Page 406: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)

G O

在 本 例 中 , TEX T P T R 放 在 一 个 局 部 变 量 中 , 并 得 到 一 个 值 。

Y E A R

Y E A R 函 数 返 回 表 示 所 给 定 日 期 的 年 的 整 数 。语 法

Y E A R ( da ta )

变 量 da t a 是 日 期 表 达 式 。

Page 407: 返回总目录 目 - bjzc.orgbjzc.org/lib/5/gjfd/ts005074.pdf第21章TRANSACT-SQL ... DBCC TRACEON ... Transact-SQL是 Microsoft SQL Server的编程语言,是结构化查询语言(SQL)