SQL Server 2005数据库技能培训(5)

2019-02-15 22:04

康索特软件有限公司 SQL Server 2005数据库技能培训

4.2.3 删除视图

DROP VIEW sales_staff

五 存储过程(了解)

5.1 结构 5.1.1 统计存储过程

5.1.2 查询存储过程

地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489

康索特软件有限公司 SQL Server 2005数据库技能培训

5.2 注意的地方 5.2.1 变量申明和赋值

DECLARE @starttime DATETIME, -- 申明变量1 @endtime VARCHAR(20), -- 申明变量1 ….. -- 申明其他变量 SELECT @starttime = getdate() -- 赋值语句 或者:

SET @starttime = getdate() -- SET也可以赋值

5.2.2 控制语句

1. IF 判断语句

IF NOT EXISTS(SELECT TOP 1 billindex FROM table1) Return 注意: 由于用了exists关键字,索引该语句为判断表中是否有数据的最优写法。 2. WHILE 循环语句

3. CASE WHEN 语句

地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489

康索特软件有限公司 SQL Server 2005数据库技能培训

5.2.3 内部函数

具体见“6.1内部函数”

5.2.4 链接查询

1. 首先要建立链接服务器,具体操作见“2.2.7添加链接服务器”。 2. 链接查询语法:

SELECT @startid = minid

FROM OPENQUERY(CDSzxin,

'select min(synclogindex) minid from zxdbm_ismp.sync_info_log')

注意:

1) CDSzxin为链接服务器名。

2) 蓝色部分的表为链接服务器中的表。

5.2.5 临时表

-- 固定写法:

IF OBJECT_ID('tempdb..#subtemptb') IS NOT NULL

DROP TABLE #subtemptb CREATE TABLE #subtemptb(……)

5.2.6 动态SQL

语法:

1. 申明变量; 2. 为该变量赋值; 3. 执行变量。 举例:

DECLARE @sql varchar(2000) --申明变量 SELECT @sql = 'INSERT INTO …' -- 赋值 EXEC (@sql) -- 执行

5.2.7 外赋值语句

语法:

DECLARE @count BIGINT

SET @sql = 'SELECT @ret=COUNT(1) FROM ' + @table -- 必须为@ret(内部变量) EXEC sp_executesql @sql, N'@ret BIGINT OUTPUT', @ret = @count OUTPUT

地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489

康索特软件有限公司 SQL Server 2005数据库技能培训

5.2.8 核心查询语句

主要是分组统计语句: SELECT @sqlStr = 'INSERT INTO dbo.rpt122SpServiceProductlogStat (timevalue,resultcode,messagetype,vacnum)'

+ ' SELECT * from openQuery(CDSzxin,''select substr(synctime,1,8),' + 'resultcode,' + 'messagetype,'

+ 'COUNT(resultcode)'

+ ' FROM zxdbm_ismp.sync_info_log' + ' WHERE interfaceflag=0'

+ ' AND synclogindex >= ' + @start_id + ' AND synclogindex <' + @end_id

+ ' GROUP BY substr(synctime,1,8),resultcode,messagetype'')' EXEC ( @sqlStr)

5.2.9 异常捕获机制

语法:

5.2.10 事务处理机制

放在try块内部,且必须在小范围查询内使用:

5.2.11 日志记录机制

包含:

1. 记录成功采集的日志,成功后记录采集结束时间或者结束索引ID。 2. 记录失败采集的日志,失败后记录采集失败的错误原因。 作用:

1. 避免漏采数据; 2. 避免重采数据; 3. 提高采集效率;

地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489

康索特软件有限公司 SQL Server 2005数据库技能培训

4. 方便查找失败原因。

5.3 内部存储过程 5.3.1 sp_executesql

外赋值:对动态sql中变量进行赋值操作。 语法:

DECLARE @count BIGINT

SET @sql = 'SELECT @ret=COUNT(1) FROM ' + @table -- 必须为@ret(内部变量) EXEC sp_executesql @sql, N'@ret BIGINT OUTPUT', @ret = @count OUTPUT

5.3.2 sp_rename

更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 1. 重命名表下例将表 customers 重命名为custs。 EXEC sp_rename 'customers', 'custs'

2. 重命名列下例将表 customers 中的列 contact title 重命名为title。 EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'

5.3.3 sp_configure

远程查询超时:此选项用于设置SQL Server在判定远程查询失败,并产生超时错误之前,应当等待的秒数。

用法:EXEC sp_configure 'remote query timeout',0

5.4 存储过程的好处 5.4.1 重复使用

存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

5.4.2 提高性能

存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。

5.4.3 减少网络流量

存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

5.4.4 安全性

地址:武汉洪山区武大科技园兴业楼南楼二单元402室 电话:027-87970489


SQL Server 2005数据库技能培训(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于单片机的音乐播放器 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: