update x set x.a=x.a+y.b from Ta as x inner join Tb as y where x.id=y.id
第一个问题,我也刚解决了,不过还是要谢谢各位. (我这个问题想来太简单了,真是贻笑大方!) update Ta set a=a+b from Ta,Tb where Ta.id=Tb.id不知第二问题怎样?
To:sankis() #ta 和 ta是不同表吗?加#是不是表示临时表?
是的是表示临时表啊。 Select count(*) as id into #ta from ta 那么你Select * From #ta 就是有多少条记录。
谢谢sankis! 小弟还有个小问题: select a from Ta into #Ta1 然后用一变量从#Ta1中取得值,每次取一行,如何取呢?拜托了!
用游标 declare mycursor cursor for select ..
谢谢 qiliu(痴心求学)的"游标". 我用一while循环来取得每一行,但碰到一个问题: declare @index int select top @index a from Ta报错是:'@index' 附近有语法错误。难道top之后只能跟常量吗?各路高手要帮一下忙啊!!!
top 后面只能跟常量,不能跟变量或表达式
SET NOCOUNT ON DECLARE user_cursor CURSOR FOR SELECT userid FROM UserTable OPEN user_cursorDECLARE @UserCode varchar(20),FETCH NEXT FROM user_cursor INTO @UserCodeWHILE @@FETCH_STATUS=0 BEGIN .........这里是你的过程 COMMIT TRANSACTIONnextuser: FETCH NEXT FROM user_cursor INTO @UserCode ENDCLOSE user_cursor DEALLOCATE user_cursorSET NOCOUNT OFF
可以用临时表
如:select * into #ta from ta
from Ta as x
inner join Tb as y
where x.id=y.id
(我这个问题想来太简单了,真是贻笑大方!)
update Ta
set a=a+b
from Ta,Tb
where Ta.id=Tb.id不知第二问题怎样?
#ta 和 ta是不同表吗?加#是不是表示临时表?
Select count(*) as id into #ta from ta
那么你Select * From #ta 就是有多少条记录。
小弟还有个小问题:
select a from Ta into #Ta1
然后用一变量从#Ta1中取得值,每次取一行,如何取呢?拜托了!
declare mycursor cursor for
select ..
我用一while循环来取得每一行,但碰到一个问题:
declare @index int
select top @index a
from Ta报错是:'@index' 附近有语法错误。难道top之后只能跟常量吗?各路高手要帮一下忙啊!!!
DECLARE user_cursor CURSOR FOR
SELECT userid FROM UserTable OPEN user_cursorDECLARE @UserCode varchar(20),FETCH NEXT FROM user_cursor
INTO @UserCodeWHILE @@FETCH_STATUS=0
BEGIN .........这里是你的过程
COMMIT TRANSACTIONnextuser:
FETCH NEXT FROM user_cursor
INTO @UserCode
ENDCLOSE user_cursor
DEALLOCATE user_cursorSET NOCOUNT OFF