Transact SQL教程

Transact SQL教程

ID:37899186

大小:46.00 KB

页数:6页

时间:2019-06-02

Transact SQL教程_第1页
Transact SQL教程_第2页
Transact SQL教程_第3页
Transact SQL教程_第4页
Transact SQL教程_第5页
资源描述:

《Transact SQL教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、TransactSQL教程(一)Transact-SQL编程在下面部分的许多语句都不是SQL标准语句,而是一个叫做Transact-SQL(T-SQL)的SQL扩展的一部分。T-SQL通过在别的事物上添加一些诸如变量、条件和循环之类的传统编程元素来扩充SQL。你可能注意到这个问题的唯一原因是你计划使用一种和MicrosoftSQLServer不同的数据库服务器。在下面部分介绍的语句和技术并不是所有都是可替换的。然而,如果你想全面的利用MicrosoftSQLServer的性能,你必须使用T-SQL。在批处理中执行多个语句为了一次能够执行

2、多个SQL语句,你可以把它们一起放入一个批处理中。批处理,如同它的名字所隐含的意识一样,是简单的一个或多个SQL语句组成的语句组。比如,假如你在ISQL/w中输入下面的两个语句,它们就会做为一个批处理而一起执行:SELECTpub_nameFROMpublishersSELECTpub_nameFROMpublishers当你执行上面那个简单的批处理时,在表中同样的数据被读取了两次—一个SELECT语句读取一次。现在假设你输错了第二个SELECT语句中表的名称,并尝试执行下面的语句:SELECTpub_nameFROMpublishers

3、SELECTub_nameFROMpublishers你可能期望第一个语句能够成功执行,而在执行第二个语句时会发生错误。而实际上并不是这样,在大多数情况下,如果在批处理中有任何一个语句不能成功执行。在其中没有一个语句会执行(特殊情况请看下面的注意)。SQLServer把在批处理中的语句当成组来看待。注意在一些情况下,一个语句在发生错误时,其他语句仍然能够执行。假如服务器在传递和编译一个批处理时检测到错误,则在批处理中的所有语句都不能执行。假如批处理通过了编译但仍然存在错误,则在其中的某些语句就可能会执行。你可以把一组语句分成隔离的批处理。

4、在ISQL/w中,你可以使用命令GO来实现该功能。考察下面的语句:SELECTpub_nameFROMpublishersGOSELECTub_nameFROMpublishers假如你在ISQL/w中执行上面的语句。即使在第二个SELECT语句中存在错误。第一个语句仍然能够成功地返回答案集。GO命令强迫SQLServer将此二个语句看成两个批处理。给变量赋值SQLServer具有两种类型的变量:全局变量和局部变量。全局变量是只读的,你不能改变它们的值。然而你可以在多个批处理中接收全局变量的值。局部变量则相反,仅局限于专门的某一个批处理。

5、局部变量的优势在于你可以修改和读取它们的值,在本部分中,你将学习如何使用这两种类型的变量。全局变量全局变量的个数是有限的,你不能自己创建全局变量。两个非常重要的全局变量是@@IDENTITY和@@ROWCOUNT。@@IDENTITY变量保留最近一次插入到IDENTITY列的值,如下面的例子:INSERTAuthors(author_name)VALUES(‘JamesJoyce’)INSERTBooks(book_id,book_title)VALUES(@@IDENTITY,’PortraitofArtistasaYongMan’)假

6、定表Authors具有两列,第一列是author_id,它是个IDENTITY列。它用于给每个Authors表中的作者一个唯一的标志,第二列author_name用于保留作者的姓名。假定表Books同样也具有两列。第一列book_id是一个INT列,第二列book_title是一个具有VARCHAR属性的列。在该批处理执行时,Authors表中标志列的值就会插入到Books表的整数列中。这就允许你进行两个表的联合查询。比如,假定你想从两个表中得到作者的姓名和他们的书时,你就可以执行下面的SELECT语句:SELECTauthor_name

7、,book_titleFROMAuthors,BooksWHEREauthor_id=book_id对于@@IDENTITY变量来说,一个很重要的特征是如果有一个记录插入了一个没有标志列的表之后,该变量的值就会变成NULL。例如下面的批处理:INSERTAuthors(author_name)VALUES(‘JamesJoyce’)SELECT@@IDENTITYSELECT@@IDENTITYINSERTBooks(book_id,book_title)VALUES(@@IDENTITY,’PortraitoftheArtistasaY

8、oungMan’)SELECT@@IDENTITYSELECT@@IDENTITY在该批处理执行时,第一个和第二个SELECT语句返回Authors表中标志列的值。而第三个和第四个SELECT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。