SqlServer 常用命令说明 联系客服

发布时间 : 星期四 文章SqlServer 常用命令说明更新完毕开始阅读db348b09581b6bd97f19eada

友恒通有限公司

where charindex('\and b.id = '31') 第三节 SET

1、SET IDENTITY_INSERT table_name ON | OFF 允许将显式值插入表的标识列中。

2、SET NOCOUNT ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当

SET NOCOUNT 为 OFF 时,返回计数。

3、SET ROWCOUNT { number | @number_var }

在返回指定的行数之后停止处理查询。 若要关闭该选项(以便返回所有的行),请将 SET ROWCOUNT 指定为 0,否则直到遇到SET ROWCOUNT命令为止。

如果行数的值较小,则 SET ROWCOUNT 替代 SELECT 语句 TOP 关键字。

第四节 控制流语言

1、 BEGIN 和 END 定义一系列一起执行的 Transact-SQL 语句。 if @@error<>0 begin rollback tran select @errmsg=\初始化新增药品的台帐时出错!\ return end

2、IF Boolean_expression

{ sql_statement | statement_block } [ ELSE

{ sql_statement | statement_block } ]

如果在 IF...ELSE 块的 IF 区和 ELSE 区都使用了 CREATE TABLE 语句或 SELECT INTO 语句,那么 CREATE TABLE 语句或 SELECT INTO 语句不能指向相同的表名。

3、GOTO 定义标签: label : 改变执行: GOTO label

第 13 页 共 53 页

友恒通有限公司

将执行流变更到标签处。跳过 GOTO 之后的 Transact-SQL 语句,在标签处继续处理。GOTO 语句和标签可在过程、批处理或语句块中的任何位置使用。GOTO 语句可嵌套使用。 不论是否使用 GOTO 语句,标签均可作为注释方法使用。

4、WHILE Boolean_expression

{ sql_statement | statement_block } [ BREAK ]

{ sql_statement | statement_block } [ CONTINUE ]

只要指定的条件为真,就重复执行语句。

可以使用 BREAK 和 CONTINUE 关键字或其他改变表达式值的方法在循环内部控制 WHILE 循环中语句的执行。

5、case函数

select sum(case when jlzt in(0,1) then 1 when jlzt in (2) then -1 else 0 end) 交易笔数 from VW_MZBRJSK

where sfrq between @ksrq and @jsrq+'24' and ybjszt=2 and jlzt in (0,1,2)

或:

select sum(case jlzt when 0 then 1 when 2 then 1 when 1 then -1 else 0 end) 结算笔数 from ZY_BRJSK

where jsrq between '20041201' and '2005030124' and ybjszt=2 and jlzt in (0,1,2)

6、/*...*/(注释)

--(注释)

7、DECLARE @local_variable

在批处理或过程的正文中用 DECLARE 语句声明变量,并用 SET 或 SELECT 语句给其指派值。游标变量可通过该语句声明,并且可用在其它与游标相关的语句中。所有变量在声明后均初始化为 NULL。

Declare @ksrq ut_rq8,@jsrq ut_rq8

Declare cs_dxmdm cursor for select id,name from YY_SFDXMK

8、 execute或exec

执行用户定义函数、系统过程、用户定义存储过程或扩展存储过程。

在执行存储过程时,如果语句是批处理中的第一个语句,则不一定要指定 EXECUTE 关键字。

exec usp_sf_bb_kssrtj '20050101','20050131' declare @errmsg varchar(50)

exec usp_yy_gxtz 1, 0, '4001', 0, '200110', @errmsg output exec('drop table '+@@tablename+')'

第 14 页 共 53 页

友恒通有限公司

第五节 常用系统存储过程

1、 sp_who

提供关于当前 Microsoft? SQL Server? 用户和进程的信息。

列 spid ecid 数据类型 smallint smallint 系统进程 ID。 与指定 SPID 相关联的给定线程的执行上下文 ID。 ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。 进程状态。 与特定进程相关联的登录名。 每个进程的主机或计算机名。 如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。 进程使用的数据库。 为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。 描述 status loginame hostname blk nchar(30) nchar(128) nchar(128) char(5) dbname cmd nchar(128) nchar(16) KILL 命令通常用于终止这样一些进程,它们锁住了其它重要进程,或者正在执行一个查询,而该查询正在使用必需的系统资源。

2、 sp_depends

显示有关数据库对象相关性的信息(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表和视图)。

sp_depends YY_KSBMK

3、 sp_help

报告有关数据库对象(sysobjects 表中列出的任何对象)、数据类型、用户定义数据类型的信息。

Sp_help YY_KSBMK 列出表结构、索引等 Sp_help ut_rq8 列出ut_rq8的数据类型定义

4、 sp_helpindex

sp_helpindex YY_KSBMK 列出YY_KSBMK的索引信息

5、 sp_helptext

显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。 sp_helptext usp_sf_sfcl

第 15 页 共 53 页

友恒通有限公司

6、 sp_password 原密码,新密码,’sa’ 修改sa的密码。如果密码为空,则输入null。

第六节 表、存储过程的创建

1、 create table

create table YK_YPCGZD (

xh ut_xh12 identity(1,1) not null, czyh ut_czyh not null, cjrq ut_rq16 not null, djh ut_sjh null , ksdm ut_ksdm not null, shry ut_czyh null , shrq ut_rq16 null , jlzt ut_bz not null, jzbz ut_bz not null,

memo ut_memo null , constraint PK_YK_YPCGZD primary key (xh) ) go

create index idx_djh on YK_YPCGZD(djh) create index idx_cjrq on YK_YPCGZD(cjrq)

--序号 --操作员 --创建日期 --单据号 --科室代码 --审核员 --审核日期

--记录状态 0录入1审核2作废 --记账标志 0:录入 1:记账 --memo

①IDENTITY

表示新列是标识列。当向表中添加新行时,自动将为该标识列提供一个唯一的、递增的值。标识列通常与 PRIMARY KEY 约束一起用作表的唯一行标识符。可以将 IDENTITY 属性指派给 tinyint、smallint、int、bigint、decimal(p,0) 或 numeric(p,0) 列。对于每个表只能创建一个标识列。不能对标识列使用绑定默认值和 DEFAULT 约束。必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值 (1,1)。

②关于自定义类型的说明:

execute sp_addtype ut_bz, 'smallint', null go

create default D_ut_bz as 0 go

execute sp_bindefault D_ut_bz, ut_bz go

execute sp_addtype ut_xh12, 'numeric(12,0)','NOT NULL' go

③CONSTRAINT

第 16 页 共 53 页