如果在程序中进行调用,比如vb的ado,该如何使用块复制?数据已经在服务器上,这时候调用存储过程,但是速度反而不如 我使用access商进行相应的变换,变换逻辑使用vb实现。 是否是因为sqlserver 建立在98上的缘故?CREATE PROCEDURE sunwei_proc1 ASdeclare @str組合コード varchar(5),@str施設コード varchar(2),@str施設NO varchar(6),@lng金額 int,@str開始年月 varchar(7) declare cursor_開始年月 cursor for select 組合コード,施設コード,施設NO,金額,min(請求年月) from sunwei_temp1 group by 組合コード,施設コード,施設NO,金額open cursor_開始年月 ------------------- fetch next from cursor_開始年月 into @str組合コード,@str施設コード,@str施設NO,@lng金額,@str開始年月 BEGIN TRANSACTION update sunwei_temp1 set 開始年月=@str開始年月 where 組合コード=@str組合コード and 施設コード=@str施設コード and 施設NO=@str施設NO and 金額=@lng金額 ------------------- if @@error<>0 rollback TRANSACTION else commit TRANSACTION ------------------- while ( cursor_status('variable','cursor_開始年月')=0 ) begin fetch next from cursor_開始年月 into @str組合コード,@str施設コード,@str施設NO,@lng金額,@str開始年月 begin TRANSACTION update sunwei_temp1 set 開始年月=@str開始年月 where 組合コード=@str組合コード and 施設コード=@str施設コード and 施設NO=@str施設NO and 金額=@lng金額 if @@error<>0 rollback TRANSACTION else commit TRANSACTION end ------------------- close cursor_開始年月 deallocate cursor_開始年月 ------------------- go
我使用access商进行相应的变换,变换逻辑使用vb实现。
是否是因为sqlserver 建立在98上的缘故?CREATE PROCEDURE sunwei_proc1 ASdeclare @str組合コード varchar(5),@str施設コード varchar(2),@str施設NO varchar(6),@lng金額 int,@str開始年月 varchar(7)
declare cursor_開始年月 cursor for
select 組合コード,施設コード,施設NO,金額,min(請求年月) from sunwei_temp1 group by
組合コード,施設コード,施設NO,金額open cursor_開始年月
-------------------
fetch next from cursor_開始年月 into @str組合コード,@str施設コード,@str施設NO,@lng金額,@str開始年月
BEGIN TRANSACTION
update sunwei_temp1
set 開始年月=@str開始年月
where 組合コード=@str組合コード and 施設コード=@str施設コード
and 施設NO=@str施設NO and 金額=@lng金額
-------------------
if @@error<>0
rollback TRANSACTION
else
commit TRANSACTION
-------------------
while ( cursor_status('variable','cursor_開始年月')=0 )
begin
fetch next from cursor_開始年月 into @str組合コード,@str施設コード,@str施設NO,@lng金額,@str開始年月
begin TRANSACTION
update sunwei_temp1
set 開始年月=@str開始年月
where 組合コード=@str組合コード and 施設コード=@str施設コード
and 施設NO=@str施設NO and 金額=@lng金額
if @@error<>0
rollback TRANSACTION
else
commit TRANSACTION
end -------------------
close cursor_開始年月
deallocate cursor_開始年月
-------------------
go
shell("dtsrun /Sservername /Uusername /Ppassword /Ndtspackagename")
比如,我先建立一个dts package名为 mytest,我的server名字:jack,用户用sa,则:
shell("dtsrun /Sjack /Ujack /P /Nmytest")
当然了你的设置路径到C:\Program Files\Microsoft SQL Server\80\Tools\Binn
若不在一台机器上,可以使用
在vb中调用扩展系统存储过程xp_cmdshell调用,一样的