`

常用存储过程语法收藏

 
阅读更多
常用存储过程语法收藏
新一篇: 利用WatiN自动化网站功能测试 | 旧一篇: 代码自动生成工具MyGeneration之三
前面学过了基本的存储过程,见

存储过程入门

现在学一下常用的存储过程的语法,只要花一点点时间学习下,就能用存储过程实现很复杂的功能,可以少写很多代码。

为了方便说明,数据库使用SQL Server的示例数据库,Northwind和pubs,如果SQL Server中没有的话,可以按下面的方法安装

1,下载SQL2000SampleDb.msi,下载地址是:
http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en
2,安装后,到默认目录C:/SQL Server 2000 Sample Databases 有instnwnd.sql ,instpubs.sql两个文件
3,在sql server中运行这两个sql 就可以创建你Northwind和pubs数据库。

下面开始学T-SQL的语法


一.注释


-- 单行注释,从这到本行结束为注释,类似C++,c#中//
/* … */ 多行注释,类似C++,C#中/* … */


二.变量(int, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar。。。。。。)
语法:
DECLARE
{
{@local_variable data_type}
} [,...n]
例如:


declare @ID int --申明一个名为@ID的变量,类型为int型

三.在SQL Server窗口中打印出变量的值


语法:
PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr


四.变量赋值


例如:

--从数据表中取出第一行数据的ID,赋值给变量@id,然后打印出来
Declare @ID int
Set @ID = (select top(1) categoryID from categories)
Print @ID

在SQL中,我们不能像代码那样直接给变量赋值,例如@id = 1,如果要达到这样的功能,可以这样写:

Declare @ID int
Set @ID = (select 1) -- 类似 @ID=1
Select @id=1 -- 类似 @ID=1
Print @ID


五.变量运算(+,-,*,/,……)


以下必要时候省略变量申明
Set @ID = (select 1+5) --类似 @ID=1+5
Set @ID=(select 1-@ID) --类似 @ID=1-@ID

六.比较操作符
• > (greater than).
• < (less than).
• = (equals).
• <= (less than or equal to).
• >= (greater than or equal to).
• != (not equal to).
• <> (not equal to).
• ! < (not less than).
• !> (not greater than).
没什么说的


七.语句块:Begin … end
将多条语句作为一个块,类似与C++,C#中的{ }
例如:
Begin
Set @ID1 = (select 1)
Set @ID2 = (select 2)
End

八.If, if…else…
语法:
IF Boolean_expression
{sql_statement | statement_block}
[ELSE
{sql_statement | statement_block}]
例如:

If @id is not null
Print ‘@id is not null
if @ID = 1
begin
Set @ID = (select 1 + 1)
end
else
begin
set @ID=(select 1+2)
end


上面的例子用到了比较操作符,语句块,和IF的语法。


九.执行其他存储过程 EXEC
例如

EXEC dbo.[Sales by Year] @Beginning_Date=’1/01/90’, @Ending_Date=’1/01/08’


十.事务

语法:


BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable]


例如

BEGIN TRAN
-- 做某些操作,例如Insert into …
if @@error <> 0
BEGIN
ROLLBACK TRAN
END
else
BEGIN
COMMIT TRAN
END

十一.游标

我们可以在存储过程中用Select语句取出每一行数据进行操作,这就需要用到游标。


语法:
DECLARE cursor_name CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement

[FOR UPDATE [OF column_name [,...n]]]


例如:

DECLARE @au_id varchar(11), @au_fname varchar(20) –申明变量
--申明一个游标
DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname FROM authors
--打开游标
OPEN authors_cursor
--取出值
FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
Print @au_id
Print @au_fname
Print ‘ ’
FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname
END
CLOSE authors_cursor –关闭游标
DEALLOCATE authors_cursor --释放游标
我觉得上面的是存储过程常用的一些东东,如果要更深入的了解,更详细的帮助,请参考SQL Server的帮助文档

<!--End_body//-->

分享到:
评论

相关推荐

    sql和pb常用自己收藏的代码

    5. **存储过程**:预编译的SQL语句集合,可以包含控制流语句,提高数据库操作的效率和安全性。 6. **事务处理(Transaction)**:确保数据的一致性和完整性,包括BEGIN、COMMIT、ROLLBACK等语句。 PowerBuilder是...

    易语言导出收藏夹

    3. **遍历文件夹**:在实现导出收藏夹的过程中,可能需要遍历特定的文件夹,查找浏览器的收藏夹存储位置。易语言提供了遍历文件夹的相关函数,如`文件夹.列举文件`和`文件夹.列举子文件夹`,用于获取指定路径下的...

    本人收藏的mssql合集

    “Sql收藏.chm”是一个帮助文件,通常包含了丰富的MSSQL参考信息,可能包括所有内置函数、系统存储过程、错误代码、最佳实践等,是快速查询和学习SQL Server功能的好帮手。 “sql基本语句.txt”则是对SQL语言基础的...

    mysql常用sql语句

    - 事务处理、视图、外键约束以及复杂的存储过程和触发器等功能,在MySQL中并不像在Oracle等关系型数据库管理系统中那样全面支持。 4. **索引适用的操作** - 索引通常适用于`, `, `&gt;=`, `&gt;`, `=`, `BETWEEN`, `IN`...

    易语言取腾讯TT网络收藏夹

    网络收藏夹允许用户在不同设备间同步浏览历史和收藏的网址,方便用户管理和访问常用网站。 这个易语言源码的目标在于解析和获取腾讯TT浏览器的网络收藏夹数据。这涉及到以下几个关键知识点: 1. **易语言编程基础*...

    php mysql 电子商务 源代码 入门操作 注册购买收藏

    在后台,这通常涉及两个主要过程:在会话(session)中存储商品信息,并在用户确认购买时生成订单。PHP处理会话逻辑,而MySQL存储订单数据。 **5. 收藏功能** 用户收藏功能需要在数据库中创建收藏表,关联用户ID和...

    2021-2022计算机二级等级考试试题及答案No.3802.docx

    2. **存储过程与存储函数**:存储过程中通常不允许包含`RETURN`语句,这是因为存储过程主要用来执行复杂的SQL操作,而存储函数则更侧重于返回一个值。 3. **关系运算**:连接操作是将两个关系合并成一个新的关系的...

    sql assistant,sql助手,sql自动提示工具

    4. **数据库对象管理**:工具通常包含对数据库对象的管理功能,如创建、修改、删除表、视图、存储过程等,用户可以直接在界面上操作,无需手动编写SQL语句。 5. **数据浏览和操作**:用户可以通过SQL Assistant直接...

    2021-2022计算机二级等级考试试题及答案No.12265.docx

    存储函数不能修改数据库中的数据,而存储过程可以D. 存储函数是预编译的,而存储过程不是正确答案: C 这些题目涉及了计算机二级考试中的多个知识点,主要涵盖了数据库管理、SQL语句、操作系统使用、网络协议、...

    SQL语句大全(经典珍藏版)

    以上是SQL语言中常用的数据操作、数据定义、数据控制、事务控制、程序化SQL、条件与循环控制等语句的概述及其基本语法和示例。这些语句构成了SQL语言的核心部分,对于数据库的管理和操作至关重要。

    php手册全集收藏--新手必备

    手册可能包含创建、查询、更新和删除数据的基本SQL语句,以及数据库管理、事务处理、存储过程和触发器等高级主题。熟悉MySQL能帮助开发者高效地处理数据并构建健壮的Web应用程序。 "php新手上路.chm"很可能是PHP...

    电影收藏清单微信小程序源码.zip

    在电影收藏清单小程序中,可能使用了网络请求API来获取电影数据,或者本地存储API来保存用户的收藏信息。 6. **组件化开发**: 微信小程序支持组件化开发,可以将常用的UI元素封装成自定义组件,提高代码复用性和可...

    精品资料(2021-2022收藏)JAVA+android-.pdf

    - 使用Oracle进行数据库开发,包括表的创建、索引、视图、存储过程、触发器等高级特性。 - Sequence用于生成唯一序列号,同义词提供别名功能,数据字典和用户管理涉及数据库的权限和安全性。 7. **JAVA EE**: -...

    聊天IM,精仿微信,支持单聊、群聊、朋友圈、摇一摇、附近的人、收藏、扫码、机器人、文字、图片、名片、实时音视频通话等功能

    5. 收藏:收藏功能涉及到数据的存储和分类管理,可能需要数据库支持,如MySQL或NoSQL数据库,同时考虑数据同步和备份策略。 6. 扫码:二维码扫描是现代移动应用中常见的功能,它依赖于图像识别技术,通过摄像头捕获...

    VB教程很好,收藏参考

    5. **第五章 数组与过程**:数组允许存储和处理多个数据项,而过程(Sub或Function)则是代码的可重用单元。本章会教授如何定义和使用数组,以及创建和调用过程。 6. **第六章 图形设计**:VB提供了丰富的图形绘制...

    精品资料(2021-2022年收藏)计算机网络复习资料资料.doc

    网络的核心部分由路由器构成,它们通过存储转发技术转发分组,实现网络边缘主机间的通信。 网络协议的三要素包括语法、语义和同步,例如TCP/IP协议族分为四层:网际接口层、网际层(IP)、运输层和应用层。在物理层...

    2021-2022计算机二级等级考试试题及答案No.3567.docx

    14. 存储过程优点:存储过程可提高执行效率,减少网络通信,保持数据一致性,并有助于提升系统安全性。 15. 循环结构:已知循环次数时,for循环通常更合适,因为它允许在初始化、条件检查和迭代更新中设置具体次数...

    2021-2022计算机二级等级考试试题及答案No.10652.docx

    - **详细解释**:题目中给出了一个具体的存储过程`p`,它接受一个整型输入参数`nol`和一个输出参数`pname`。在调用这样的存储过程时,需要确保输入参数的类型正确,并且为输出参数提供一个变量来接收结果。因此,...

    数据库查询语句 sql 自学资料

    以下是一些关于SQL的重要知识点,这些内容通常会出现在《SQL参考手册》、《SQL 21日自学通》、《语法大全》、《语法手册》以及《收藏的SQL语句》等学习资源中: 1. SQL基础: - SELECT语句:SQL中最常用的语句,...

    SQL经典的收藏(英文版)(上)自学必备

    - **特性介绍**:Oracle数据库以其强大的性能、高度的安全性和可扩展性著称,支持多种数据类型和存储过程等功能。 - **Oracle SQL特色**:Oracle提供了许多独特的SQL功能,如分区表、物化视图、并行查询等,这些特性...

Global site tag (gtag.js) - Google Analytics