技术开发 频道

MS SQL的数据库命令

   MS SQL的数据库命令(二)

  11. SELECT

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

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

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

  例4-20:

use pangu declare @x char30) 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

  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]] } ] } } } }

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

  例4-22

declare @x char30set @x = 'This is a SET command.' select @x

  运行结果如下

  ------------------------------
  This is a SET command.

  例4-23

use pangu declare @department_num int @x char10set @department_num = select count (*) from department) set @x = '部门数目' print @x select @department_num

  运行结果如下

  部门数目
  -----------
  7

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

  有以下几种设定方式:SET 选项ON ,SET 选项OFF,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 的执行的方法还有好几种

  13 . 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 '进行技术研究与开发提供最新的技术动态信息'

  14 . USE

  语法如下:

USE {databasename}

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

0
相关文章