求T-SQL高手,冰天雪地跪求

怪蜀黍的花季雨季 2011-10-12 06:40:07
要在存储过程里面,把查询视图的结果循环赋值给存储过程里面的2个变量,达到批量处理的效果
视图名[v_his_LabItem] 只有2个字段ITEMCODE ITEMNAME
存储过程大概是这样开头的
USE [CPOEDB2]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[mcs_his_importLabItem]

@cpoename nvarchar(200) ='ItemCode',
@hisdm varchar(10)='ItemName',
AS
,把从视图查出来的ITEMCODE。和ItemName循环赋值到@cpoename nvarchar(200) ='ItemCode',
@hisdm varchar(10)='ItemName',
--存储过程下面的不用管,就是执行数据了,是写好了的
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
md5e 2011-10-18
  • 打赏
  • 举报
回复
干嘛非得在外边执行视图再传进去,难道存储过程里面不能执行视图吗?

jlclyx 2011-10-18
  • 打赏
  • 举报
回复
参考2楼的游标技术。很容易实现的。
keepfool 2011-10-18
  • 打赏
  • 举报
回复

TSQL不用游标就可以循环的两个方法:

方法一:

SELECT * INTO #t1 FROM dbo.HorseBase



DECLARE @id int

DECLARE @t2 table (id int)



WHILE (exists(SELECT HorseNumber FROM #t1))

BEGIN

SELECT TOP 1 @id=HorseNumber FROM #t1

INSERT INTO @t2 SELECT HorseNumber FROM #t1 WHERE HorseNumber=@id

DELETE FROM #t1 WHERE HorseNumber=@id

END



DROP Table #t1

方法二:

DECLARE @r int

DECLARE @number int;

DECLARE @t2 table ( [name] nvarchar(200))



SELECT ROW_NUMBER() OVER (ORDER BY [Name] ) AS number,[name] INTO #nn1 FROM dbo.tbl_Entity

SELECT @number=MAX(number) FROM #nn1

SET @r=1

WHILE (@r<=@number)

BEGIN

INSERT INTO @t2 SELECT [name] FROM #nn1 WHERE number=@r

SET @r=@r 1

END



DROP TABLE #nn1

注:ROW_NUMBER() 在分页存储过程中也是比较好用的。
星小野 2011-10-13
  • 打赏
  • 举报
回复
关注....
钱是姻缘 2011-10-13
  • 打赏
  • 举报
回复
如果是在SQL中实现的,只能用游标了。
Ny-6000 2011-10-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zx289400728 的回复:]
楼主用游标
[/Quote]

同样建议.

还可以加上程序中的多线程.
ruanwei1987 2011-10-13
  • 打赏
  • 举报
回复
mark
zx289400728 2011-10-13
  • 打赏
  • 举报
回复
楼主用游标
classbob 2011-10-12
  • 打赏
  • 举报
回复
循环赋值?

declare assign_cur scroll cursor for
select ITEMCODE, ITEMNAME from [v_his_LabItem]

open assign_cur

fetch next from assign_cur into @cpoename, @hisdm
while(@@fetch_status=0)
begin

--op

fetch next from assign_cur into @cpoename, @hisdm
end

close assign_cur
deallocate assign_cur
  • 打赏
  • 举报
回复
200分来人啊~

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧