关于MSSQL存储过程中使用游标的一个小例子(学习)
2009-02-24 17:17
801 查看
声明:本例转自http://hi.chinaunix.net/?214950/viewspace-1713,主要是为了学习之用
比如有个表,内容如下
id,text
1,春花秋月何时了
2,往事知多少
3,小楼昨夜又春风
4,古国不堪回首月明中
......
其中id为系列号,text为文本内容,我想使用个sql语句,达到如下效果:
查询text列,查询的值累加,即查询结果显示如下:
春花秋月何时了 往事知多少 小楼昨夜又春风 古国不堪回首月明中 ...
用存储过程+游标实现,示例如下
ALTER PROCEDURE [dbo].[abc]
-- Add the parameters for the stored procedure here
@p1 int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @ttt varchar(100);
declare @bbb varchar(10);
set @ttt=''
set @bbb=''
declare mycur cursor for
select meno from test where gid= @p1
open mycur
fetch next from mycur into @bbb
WHILE @@FETCH_STATUS = 0
BEGIN
set @ttt=@ttt+@bbb
fetch next from mycur into @bbb
end
close mycur
select @ttt
-- Insert statements for procedure here
END
下面是自己的小测试:
ALTER PROCEDURE dbo.fetchtest
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
declare @ss varchar(2000),@aa varchar(2000),@cc varchar(2000)
set @ss=''
set @aa=''
set @cc=''
SELECT @@CURSOR_ROWS
DECLARE authors_cursor CURSOR FOR
SELECT top 100 RegionalName,userid FROM areaInfo
OPEN authors_cursor
FETCH NEXT FROM authors_cursor into @ss,@cc--这里要与字段数相同
while @@FETCH_STATUS=0
begin
set @aa=@aa+ltrim(@cc)
FETCH NEXT FROM authors_cursor into @ss,@cc--这里要与字段数相同
end
SELECT @@CURSOR_ROWS
SELECT @aa
CLOSE authors_cursor
DEALLOCATE authors_cursor
比如有个表,内容如下
id,text
1,春花秋月何时了
2,往事知多少
3,小楼昨夜又春风
4,古国不堪回首月明中
......
其中id为系列号,text为文本内容,我想使用个sql语句,达到如下效果:
查询text列,查询的值累加,即查询结果显示如下:
春花秋月何时了 往事知多少 小楼昨夜又春风 古国不堪回首月明中 ...
用存储过程+游标实现,示例如下
ALTER PROCEDURE [dbo].[abc]
-- Add the parameters for the stored procedure here
@p1 int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @ttt varchar(100);
declare @bbb varchar(10);
set @ttt=''
set @bbb=''
declare mycur cursor for
select meno from test where gid= @p1
open mycur
fetch next from mycur into @bbb
WHILE @@FETCH_STATUS = 0
BEGIN
set @ttt=@ttt+@bbb
fetch next from mycur into @bbb
end
close mycur
select @ttt
-- Insert statements for procedure here
END
下面是自己的小测试:
ALTER PROCEDURE dbo.fetchtest
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
declare @ss varchar(2000),@aa varchar(2000),@cc varchar(2000)
set @ss=''
set @aa=''
set @cc=''
SELECT @@CURSOR_ROWS
DECLARE authors_cursor CURSOR FOR
SELECT top 100 RegionalName,userid FROM areaInfo
OPEN authors_cursor
FETCH NEXT FROM authors_cursor into @ss,@cc--这里要与字段数相同
while @@FETCH_STATUS=0
begin
set @aa=@aa+ltrim(@cc)
FETCH NEXT FROM authors_cursor into @ss,@cc--这里要与字段数相同
end
SELECT @@CURSOR_ROWS
SELECT @aa
CLOSE authors_cursor
DEALLOCATE authors_cursor
相关文章推荐
- sql关于游标和游标、存储过程结合的一个例子
- mssql 存储过程学习中 [2]获取多个记录集及多次使用存储过程
- [MSSQL]存储过程示例(拷贝数据表--游标使用--更新数据-日期函数的使用)
- MySQL中关于行转列的存储过程的写法(使用游标)
- 关于在存储过程中使用游标操作数据库
- Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
- postgresql 游标,函数,存储过程使用例子
- 一个使用游标的存储过程的实例
- 关于存储过程中一个参数表示多个查询条件使用方法的简单处理
- sql2005 存储过程使用 事务 和 游标 例子
- SQL Server学习:存储过程中Cursor(游标)的使用
- 如何删除一个表中重复的记录? 、、游标,存储过程的使用
- MySQL中关于行转列的存储过程的写法(使用游标)
- 在mysql存储过程中使用光标一个例子
- oracle 存储过程(其中使用了游标)例子
- mysql 一个带游标的存储过程例子
- MSSQL数据库:存储过程实例学习(1)从两个表中取出头两行,然后合并到一个表中
- 一个简单的存储过程使用事务的例子
- 一个简单的存储过程使用事务的例子
- 关于在存储过程中使用游标操作数据库