穿越火线区排名:sql怎么创建存储过程的问题

来源:百度文库 编辑:高考问答 时间:2024/04/17 04:14:36
我看见有好多“选择”存储过程,我就知道怎么创建删除,更新,和插入的操作,怎么创建“选择“存储过程向导啊,难道非要手写》

靠代码创建即可:给你个代码参考:详细有不会的可以联系QQ37191520,一起讨论
--drop procedure up_et03a
CREATE PROCEDURE [up_et03a]

AS

declare @s_wtpt varchar(4) -- server TEAHS432A write point
declare @s_rdpt varchar(4) -- server TEAHS432A read point

declare @s_biswtpt varchar(4) -- server TEAHS432A write point
declare @s_bisrdpt varchar(4) -- server TEAHS432A read point

declare @l_wtpt31 varchar(4) -- local TEAHS432A write point
declare @l_rdpt31 varchar(4) -- local TEAHS432A read point

declare @line CHAR(3)
declare @event CHAR(3)
declare @partcode CHAR(2)
declare @engno CHAR(9)
declare @passdate CHAR(10)
declare @passtime CHAR(8)
declare @readpt CHAR(4)
declare @writept CHAR(4)
declare @palletno CHAR(8)
declare @shift CHAR(1)

declare @serialno VARCHAR(7)
declare @worker VARCHAR(20)

begin

select @l_rdpt31 = readpt,@l_wtpt31 = writept from TEAHS432A where rba = 'AAAA'

select @s_wtpt = writept from TESTLINK..CHINA.TEAHS432A where rba = 'AAAA'

if @s_wtpt = '9999'
set @s_wtpt = '0000'

if @l_rdpt31 < @l_wtpt31
begin
while convert(int,@l_rdpt31+1) <= convert(int,@l_wtpt31)
begin

set @l_rdpt31 = replicate('0',4-len(@l_rdpt31+1))+convert(varchar(4),(@l_rdpt31+1))

if @s_wtpt = '9999'
set @s_wtpt = '0000'

set @s_wtpt = replicate('0',4-len(@s_wtpt+1))+convert(varchar(4),(@s_wtpt+1))

select @line = LINE,
@event = EVENT,
@partcode = PARTCODE,
@engno = ENGNO,
@passdate = PASSDATE,
@passtime = PASSTIME

from TEAHS432A
where RBA = @l_rdpt31

--select @l_rdpt31 +','+@line+','+@engno+','+@serialno

update TESTLINK..CHINA.TEAHS432A set
LINE = @line,
EVENT = @event,
PARTCODE = @partcode,
ENGNO = @engno,
PASSDATE = @passdate,
PASSTIME = @passtime

where RBA=@s_wtpt

end

update TEAHS432A set readpt = @l_wtpt31 where rba ='AAAA'

update TESTLINK..CHINA.TEAHS432A set writept = @s_wtpt where rba ='AAAA'

end

else if @l_rdpt31 > @l_wtpt31
begin
while convert(int,@l_rdpt31+1) <= 9999
begin
set @l_rdpt31 = replicate('0',4-len(@l_rdpt31+1))+convert(varchar(4),(@l_rdpt31+1))

if @s_wtpt = '9999'
set @s_wtpt = '0000'

set @s_wtpt = replicate('0',4-len(@s_wtpt+1))+convert(varchar(4),(@s_wtpt+1))

select @line = LINE,
@event = EVENT,
@partcode = PARTCODE,
@engno = ENGNO,
@passdate = PASSDATE,
@passtime = PASSTIME

from TEAHS432A
where RBA = @l_rdpt31

update TESTLINK..CHINA.TEAHS432A set
LINE = @line,
EVENT = @event,
PARTCODE = @partcode,
ENGNO = @engno,
PASSDATE = @passdate,
PASSTIME = @passtime

where RBA=@s_wtpt

end

update TEAHS432A set readpt = '0000' where rba ='AAAA'

update TESTLINK..CHINA.TEAHS432A set writept = @s_wtpt where rba ='AAAA'

end
end

GO