小编pav*_*lcc的帖子

T SQL循环插入或更新

我有两张桌子.

表A和表B.列是相同的.

create table TableA (
    id int
    , name varchar
    , last datetime
)

create table TableB (
    id int
    , name varchar
    , last datetime
)
Run Code Online (Sandbox Code Playgroud)

我用大量数据填充表A. 我想将表A中的数据插入或更新到表B中.

我想从表A中获取数据,如果id和name doenst匹配则插入到表B中,如果id和name匹配则更新.

我尝试了一些ETL工具,但结果非常慢.我有id和name的索引,我想用SQL尝试这个.

我有以下但不正确的工作:

SELECT      @id = ID, 
      @name = name, 
      @LSDATE = LastSeen_DateTime   
            FROM DBO.A
IF EXISTS (SELECT ID, name FROM DBO.A
WHERE  @ID = ID AND @name = Name)
Run Code Online (Sandbox Code Playgroud)

begin - update end else begin --insert end

我想我需要把它放在一个循环中并且不太确定如何使这个运行.

谢谢.

sql t-sql sql-server stored-procedures sql-server-2005

2
推荐指数
2
解决办法
4823
查看次数

MYSQL - 使用 while 循环更新

declare c int 
set c = 1
while c<700 do
update users set profile_display_name = concat(substring(first_name,1,1), last_name) 
        where profile_display_name is null and id between ((c-1)*10000+1) and (c*10000);
SET c = c+1;
End while ;
Run Code Online (Sandbox Code Playgroud)

我收到错误。接近声明和结束 while 语句。我哪里出错了??

mysql

1
推荐指数
1
解决办法
4万
查看次数