MSSQL数据库:存储历程学习[MySQL防范]
本文“MSSQL数据库:存储历程学习[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
这个例子里面我们从两个表中取出头两行,然后归并到一个表中.
在实际中我们常常会碰到这样的情形,在一个数据库中存在两个表,假定表1储存着公司个产品本季度贩卖信息,表2储存着公司本季度欠款金额情形.在一个页面中我们想把这两个信息显示出来.普通的做法是在程序中举行两次SQL查询,返回两个后果集,在辨别显示出来,非常麻烦.
下面是实现这个功效的代码:
CREATE PROCEDURE test
AS
SET NOCOUNT ON --指导存储历程不返回查询影响的行数
DECLARE @col1c varchar(20),@col2c varchar(20), @index int
SET @index = 1
CREATE TABLE #tmptbl --成立一个暂时表,用于储存我们的后果
(
colID int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
col1 varchar(20),
col2 varchar(20)
)
DECLARE cur1 CURSOR FOR SELECT TOP 2 customerid FROM orders
DECLARE cur2 CURSOR FOR SELECT TOP 2 regiondescription FROM region
OPEN cur1
OPEN cur2
FETCH cur2 INTO @col2c
FETCH cur1 INTO @col1c
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #tmptbl (col1, col2) VALUES (@col1c, @col2c)
FETCH NEXT FROM cur1 INTO @col1c
FETCH NEXT FROM cur2 INTO @col2c
END
CLOSE cur1
CLOSE cur2
DEALLOCATE cur1
DEALLOCATE cur2
SELECT * FROM #tmptbl
DROP TABLE #tmptbl
GO
阐明:
@@FETCH_STATUS,返回被fetch语句履行的最后游标状况.
返回值:0-FETCH语句履行成功
1-FETCH语句失利,或此行不再后果集合.
2-被提取的行不存在.
以上是“MSSQL数据库:存储历程学习[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |