代码如下: CREATE PROCEDURE [dbo].[xx] AS DECLARE @b CHAR(10),@c CHAR(10),@d CHAR(10) DECLARE WINID CURSOR FOR SELECT b,c,d FROM stock.dbo.aaa
OPEN WINID FETCH NEXT FROM WINID INTO @b,@c,@d WHILE @@FETCH_STATUS=0 BEGIN insert into aaa (b,c,d) values(@b,@c,@d) print @b FETCH NEXT FROM WINID INTO @b,@c,@d END CLOSE WINID DEALLOCATE WINID
定义一个游标 ,循环取出原来表里的3个列的数据存入变量里 再根据主健 update b表中的那三个字段
应该可行
CREATE PROCEDURE [dbo].[xx]
AS
DECLARE @b CHAR(10),@c CHAR(10),@d CHAR(10)
DECLARE WINID CURSOR FOR
SELECT b,c,d FROM stock.dbo.aaa
OPEN WINID
FETCH NEXT FROM WINID
INTO @b,@c,@d
WHILE @@FETCH_STATUS=0
BEGIN
insert into aaa (b,c,d) values(@b,@c,@d)
print @b
FETCH NEXT FROM WINID
INTO @b,@c,@d
END
CLOSE WINID
DEALLOCATE WINID
已试过 成功
//SELECT b,c,d FROM stock.dbo.aaa 中的 stock.dbo.aaa 是你的 A.dbo.AA
//@b CHAR(10),@c CHAR(10),@d CHAR(10) 是你的 那三个列名和长度
//insert into aaa (b,c,d) values(@b,@c,@d) 中的 aaa 是你的 B数据库中的 A表
不过偶发现SQL里的游标好象速度特别慢。
不太明白这句话的意思 你那你的abc代替好吗?
另外 过了一段时间后 是多长呢?