sqlServer2000存储过程学习笔记

来源:互联网 发布:百度关键词seo 编辑:程序博客网 时间:2024/04/27 18:47
开始学习存储过程的编写。
首先先搞清楚了几个基本的写法,从0开始,嘎嘎:
声明一个变量:declare @gao varchar(30)
关键字:declare
变量名:@gao
为啥用@,不知道,就当是必须的啦,先这么记着,将来弄明白了再回来补充

赋值:select @gao = convert(varchar,getdate(),111)
关键字:select
奇怪的用法,干嘛select,不知道还有没有别的方法,也是先这么记着。。。
用到一个函数:convert(varchar,getdate(),111),第一个参数是输出的数据类型,第二个参数是随意合法表达式或函数,第三个是输出的日期格式代号,具体的我已经收录了一个帖子专门说明。
http://blog.csdn.net/gaoyunpeng/archive/2007/03/19/1533594.aspx

输出:print @gao
关键字:print
这个试了一堆,write、out、output,最后才知道需要用print,嘎嘎

完整的运行一下:
declare @gao varchar(30)
select @gao = convert(varchar,getdate(),111)
print @gao

输出:
2007/03/19

呵呵,成功,俺开始入门啦

===========================

@@TRANCOUNT    用来获得当前执行的事务的数量,为什么用了两个@呢,待学习。。。

exec和execute貌似是同样的功能哎~都是用来执行一段SQL语句或者一个存储过程。或者根本就是同 一个东西的两个名字??

===========================

看如下一个SQL语句
SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]'
这里 N'[Uncategorized (Local)]'  让人很郁闷,因为我不知道那个N是啥~~于是——查!
结果:
必须在处理使用 Unicode 字符串常量在 SQLServer 时 SQLServer 联机图书主题 " 使用 Unicode 数据 " 中所述之前所有 Unicode 字符串以大写字母 N。 " N " 前缀代表 SQL-92 标准, 中有关 National 语言, 必须大写。 如果您执行不前缀 Unicode 字符串常量使用 N, SQLServer 会将其到当前数据库的非Unicode 代码页之前使用字符串。
以上文字为微软的帮助主页上写的概要解释,翻译很难受,不过人家声明了是机器自动翻译的,不过足以说明问题,那个N表示的就是Unicode 字符串~,完毕。

============================================

RAISERROR函数
到处找资料,发现没有,最后在MSDN上找到了,后来一想,也是,人家自己的东西肯定有帮助文档的,既然有帮助文档,别人再写就显得多余了,哈。那篇帮助我已经转载了,写的挺多,不过一般的使用是不用那么罗唆的,于是就记录一个常用版本的,代码如下:
RAISERROR('错误!该卷烟库存小于等于0,不能销售。',16,1)
解释:
第一个参数:错误信息,可以是直接写一个字符串,也可以传入一个字符串变量,还可以写上错误代号,似乎需要大于50000(不知道为什么选了这么大一个数字),如果用户选择的是直接写入错误信息,那么这个代号将默认为50000;以上三种可以作为参数的形式只能选择一个,即直接值或变量或代号。
第二个参数:错误严重程度,数值为0到25,其中20-25被视为致命错误(就是特严重啦~),需要一定权限的用户才可以发出那种错误信息,还需要加别的参数,太罗唆,再说我们平时用不到那些啦,所以就随便选个号码吧,十几就可以(这里不知道是否需要严格选择一个号码,等弄明白再来补充),如果指定的号码小于0,将取0值。
第三个参数:

介于 1 至 127 之间的任意整数。state 的负值默认为 1。值为 0 或大于 127 会生成错误。

如果在多个位置引发相同的用户定义错误,则针对每个位置使用唯一的状态号有助于找到引发错误的代码段。

以上是MSDN上的话,说的蛮干净利落,就直接引用了

执行效果:

RAISERROR('错误!该卷烟库存小于等于0,不能销售。',16,1)
执行后显示:
Server: Msg 50000, Level 16, State 1, Line 7
错误!该卷烟库存小于等于0,不能销售。

完毕。

===================================

原创粉丝点击