zoukankan      html  css  js  c++  java
  • MS SQL入门基础:sql 其它命令

      4.7.1 BACKUP

      BACKUP 命令用于将数据库内容或其事务处理日志备份到存储介质上(软盘、硬盘、磁带)。等SQL Server 7.0 以前的版本用的是DUMP 命令来执行此功能,从SQL Server 2000起,不再使用DUMP 命令。关于BACKUP 命令的详情请参见“数据备份与恢复”章节。

      4.7.2 CHECKPOINT

      语法如下:

      CHECKPOINT

      CHECKPOINT 命令用于将当前工作的数据库中被更改过的数据页data page 或日志页(log page)从数据缓冲器(data buffer cache)中强制写入硬盘。

      4.7.3 DBCC

      DBCC Database Base Consistency Checker,数据库一致性检查程序)命令用于验证数据库完整性、查找错误、分析系统使用情况等。

      DBCC 命令后必须加上子命令,系统才知道要做什么。如DBCC CHECKALLOC 命令检查目前数据库内所有数据页的分配和使用情况。

      关于DBCC 命令的详情,请参见附录。

      4.7.4 DECLARE

      语法如下:

      DECLARE {{ @local_variable data_type }

      | { @cursor_variable_name CURSOR }

      | { table_type_definition }

      } [,...n]]

      DECLARE 命令用于声明一个或多个局部变量、游标变量或表变量。在用DECLARE命令声明之后,所有的变量都被赋予初值NULL。需要用SELECT 或SET命令来给变量赋值。变量类型可为系统定义的或用户定义的类型,但不能为TEXT、NTEXT、IMAGE类型。CURSOR 指名变量是局部的游标变量。

      例4-16

      declare @x float @y datetime

      select @x = pi @y = getdate

      print @x

      print @y

      运行结果如下:

      3.14159

      Jun 17 2000 4:32PM

      注意:如果变量为字符型,那么在data_type表达中应指明

      其最大长度,否则系统认为其长度为1。

      例4-17

      declare @x char @y char 10

      select @x = '123' @y = 'data_type'

      print @x

      print @y

      运行结果如下

      1

      data_type

      4.7.5 EXECUTE

      EXECUTE 命令用来执行存储过程,其具体用法请参见“存储过程”章节。

      4.7.6 KILL

      KILL 命令用于终止某一过程的执行,其具体用法请参见“存储过程”章节。

      4.7.7 PRINT

      语法如下:

      PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expression

      PRINT 命令向客户端返回一个用户自定义的信息,即显示一个字符串(最长为255个字符)、局部变量或全局变量。如果变量值不是字符串的话,必须先用数据类型转换函数CONVERT(),将其转换为字符串。其中,string_expression 是可返回一个字符串的表达式。表达式的长度可以超过8000 个字符,但超过8000 的字符将不会显示。

      例4-18:

      declare @x char 10 @y char 10

      select @x = 'SQL' @y = 'Server'

      print '科技'

      print @x + @y

      运行结果如下:

      科技

      SQL Server

      4.7.8 RAISERROR

      RAISERROR 命令用于在SQL Server 系统返回错误信息时,同时返回用户指定的信息。其具体用法请参见“存储过程”章节。

      4.7.9 READTEXT

      READTEXT 命令语法如下

      READTEXT {table.column text_pointer offset size} [HOLDLOCK]

      READTEXT 命令用于从数据类型为TEXT、NTEXT 或IMAGE 的列中读取数据。命令从偏移位置offset+1 个字符起读取size 个字符,如果size 为0, 则会读取4KB 的数据。其中text_pointer 是指向存储文本的第一个数据库页的指针,它可以用TEXTPTR()函数来获取。关于TEXTPTR ()函数的使用请参见“4.8.7 TEXT 和IMAGE 函数”。HOLDLOCK 选项用于锁定所读取的数据直到传输结束,这段时间内,其它用户只能读取数据,不能更改数据。

      例4-19:

      use pangu

      declare @t_pointer varbinary (16)

      select @t_pointer = textptr (d_intro)

      from department

      where d_name = '技术部'

      readtext department.d_intro @t_pointer 0 42

      运行结果如下:

      d_intro

      --------------------------------------------------------------------

      进行技术研究与开发,提供最新的技术动态信息

      (1 row (s) affected)

      注意:如果数据列为汉字,则offset值应取o或其它偶数,如果用奇数,则会出现乱码

      4.7.10 RESTORE

      RESTORE 命令用来将数据库或其事务处理日志备份文件由存储介质回存到SQL Server系统中。SQL Server 7.0 以前的版本用的是LOAD命令来执行此功能,从SQL Server 2000起,不再使用LOAD 命令。关于RESTORE 命令的详情,请参见“数据备份与恢复”章节

      4.7.11 SELECT

      SELECT 命令可用于给变量赋值其语法如下:

      SELECT {@local_variable = expression } [ ...n]

      SELECT 命令可以一次给多个变量赋值。当表达式expression 为列名时,SELECT 命令可利用其查询功能一次返回多个值,变量中保存的是其返回的最后一个值。如果SELECT命令没有返回值,则变量值仍为其原来的值。当表达式expression 是一个子查询时,如果子查询没有返回值则变量被设为NULL。

      例4-20:

      use pangu

      declare @x char (30)

      select @x = 'CPU'

      select @x = d_name

      from department

      where dept_id = 9999

      select @x

      运行结果如下:

      -----------------------

      CPU

      例4-21:

      use pangu

      declare @x char 30

      select @x = 'Main Board'

      select @x = (select d_name

      from department

      where dept_id=9999)

      select @x

      运行结果如下

      -----------------------

      NULL

      4.7.12 SET

      SET 命令有两种用法:

      1 用于给局部变量赋值

      其语法如下:

      SET { {@local_variable = expression} | { @cursor_variable =

      { @cursor_variable cursor_name

      | { CURSOR

      [FORWARD_ONLY | SCROLL]

      [STATIC | KEYSET | DYNAMIC | FAST_FORWARD]

      [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]

      [TYPE_WARNING]

      FOR select_statement

      [FOR {READ ONLY

      | UPDATE [OF column_name [ ...n]] } ] } } } }

      其中的CURSOR 等参数将在“游标”一章中讲述。

      在用DECLARE 命令声明之后,所有的变量都被赋予初值NULL。 需要用SET 命令来给变量赋值。但与SELECT 命令不同的是,SET 命令一次只能给一个变量赋值。不过由于SET 命令功能更强,且更严密,因此,SQL Server 推荐使用SET 命令来给变量赋值。

      例4-22

      declare @x char (30)

      set @x = 'This is a SET command.'

      select @x

      运行结果如下

      ------------------------------

      This is a SET command.

      例4-23

      use pangu

      declare @department_num int @x char (10)

      set @department_num = select count (*)

      from department)

      set @x = '部门数目'

      print @x

      select @department_num

      运行结果如下

      部门数目

      -----------

      7

      2 用于设定用户执行SQL 命令,时SQL Server 的处理选项设定

      有以下几种设定方式:

    SET 选项ON SET 选项OFF SET 选项值

      关于此类SET 命令的详情,请参见附录。

      语法如下

      SHUTDOWN [WITH NOWAIT]

      SHUTDOWN 命令用于停止SQL Server 的执行,当使用NOWAIT 参数时,SHUTDOWN命令立即停止SQL Server,在终止所有的用户过程并对每一现行的事务发生一个回滚后,退出SQL Server。当没有用NOWAIT 参数时,SHUTDOWN 命令将按以下步骤执行:

      (1) 终止任何用户登录SQL Server。

      (2) 等待尚未完成的Transact-SQL 命令或存储过程执行完毕。

      (3) 在每个数据库中执行CHECKPOINT 命令

      (4) 停止SQL Server 的执行

      例4-24

      shutdown with nowait

      运行结果如下:

      ------------------------------

      Changed language setting to us_english.

      Server shut down by request.

      SQL Server is terminating this process.

      停止SQL Server 的执行的方法还有好几种,我们将在“企业管理器EnterpriseManager” 章节中介绍。

      4.7.14 WRITETEXT

      语法如下:

      WRITETEXT {table.column text_pointer} [WITH LOG] {data}

      WRITETEXT 命令用于向数据类型为TEXT、 NTEXT 或IMAGE 的列中读取数据。其中text_pointer 是指向存储文本的第一个数据库页的指针,它可以用TEXTPTR()来获取。关于TEXTPTR 函数的使用请参见“4.8.7 TEXT 和IMAGE 函数”。WOTH LOG选项用于记录所写入的数据。data 可为文字或变量,其最大长度为120KB。注意:WRITETEXT命令不能作用于视图。

      推荐使用UPDATETEXT 命令来修改TEXT、NTEXT 和IMAGE 类型的数据。因为WRITETEXT 命令将数据列的数据完全替换,而UPDATETEXT 命令可以只更改数据列的一部分。关于UPDATETEXT 命令的使用将在“数据库更新”章节中讲述。

      例4-25

      declare @t_pointer binary (16)

      use pangu

      select @t_pointer = textptr d_intro

      from department

      where d_name = '技术部'

      writetext department.d_intro @t_pointer '进行技术研究与开发提供最新的技术动态信息'

      4.7.15 USE

      语法如下

      USE {databasename}

      USE 命令用于改变当前使用的数据库为指定的数据库。用户必须是目标数据库的用户成员或目标数据库建有GUEST 用户账号时,使用USE 命令才能成功切换到目标数据库。

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    C语言网 蓝桥杯 1117K-进制数
    C语言网蓝桥杯1116 IP判断
    LeetCode 面试题14- II. 剪绳子 II
    LeetCode 面试题06. 从尾到头打印链表
    LeetCode 面试题05. 替换空格
    LeetCode 面试题04. 二维数组中的查找
    LeetCode 面试题03. 数组中重复的数字
    LeetCode 3. 无重复字符的最长子串
    LeetCode 202. 快乐数
    LeetCode 154. 寻找旋转排序数组中的最小值 II
  • 原文地址:https://www.cnblogs.com/Athrun/p/832264.html
Copyright © 2011-2022 走看看