procedure,cursor 用法

本文介绍了一个SQL存储过程的创建及使用实例,该过程通过游标遍历数据并插入到另一个表中,条件为单位类型不等于1000。此过程涉及数据库操作的关键步骤和技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[msw_pro]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[msw_pro]
go
SET QUOTED_IDENTIFIER ON
GO
SET ansi_nulls on
go
create procedure msw_pro
as

declare mycursor cursor
for
select unitid,unittype,unittypecode,unitname,
classificationname,ku.weight
from kangaroo_unit ku,kangaroo_classification kc
where
ku.modifytype<>3
and  ku.unittype=kc.typeid

declare @unitid int
declare @unittype int
declare @weight int
declare @unittypecode nvarchar(400)
declare @unitname nvarchar(400)
declare @classificationname nvarchar(400)
open mycursor
fetch next from mycursor
--while @@Fetch_status = 0
into @unitid,@unittype,@unittypecode,@unitname,@weight,@classificationname,@weight
--//
while(@@Fetch_status = 0)
begin
    --Fetch next from mycursor
    if(@unittype<>1000)
       begin
          insert into kangaroo_unit_classification(
           unitid,classificationid,classificationtypecode,weight, unitname,
           classificationname)
           values(@unitid,@unittype,@unittypecode,@weight,@unitname,@classificationname)
       end
    --//
    fetch next from mycursor into @unitid,@unittype,@unittypecode,@unitname,@weight,@classificationname,@weight
end

close mycursor
deallocate mycursor





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值