0
insert into user 
    (user_id, account_id, user_type_cd, name, e_mail_addr, login_failure_cnt, admin_user, primary_user)
select * 
from pnet_user 
where account_id='1';

但现在我想在插入的条目上将 1 更改为 2。但现在我想在插入的条目上将 1 更改为 3。但现在我想在插入的条目上将 1 更改为 .... 。但现在我想在插入的条目上将 1 更改为 1000。

它将复制并写下 1000 次(仅更改 id )。

你明白吗 ?对不起我的英语不好!非常感谢 !

4

4 回答 4

1

这完全取决于您的意思;

如果你想要前 1000 个用户,为什么不写呢?

WHERE account_id <= 1000

如果您想要所有用户;

没有WHERE条款。

如果您希望通过参数插入用户(用户输入);

DECLARE @ID int
SET @ID = 1;

WHERE account_id = @ID
于 2013-05-21T16:02:14.903 回答
0
insert into user 
    (user_id, account_id, user_type_cd, name, e_mail_addr, login_failure_cnt, admin_user, primary_user)
select * 
from pnet_user 
where account_id BETWEEN 1 AND 1000;

-partSELECT可以一次返回多行。(我认为 account_id 实际上不是一个字符串,而是一个数字)。此外,我强烈建议在 select 语句中输入列名。

于 2013-05-21T16:03:37.413 回答
0
insert into user (user_id,account_id,user_type_cd,name,e_mail_addr,login_failure_cnt,admin_user,primary_user) select * from pnet_user 

你也可以指定列名而不是 *

insert into user (user_id,account_id,user_type_cd,name,e_mail_addr,login_failure_cnt,admin_user,primary_user) select id,ac_id .... from pnet_user 
于 2013-05-21T16:06:00.020 回答
0

如果 account_id 是数字,只需更改 where 子句

  Insert user (user_id, account_id, user_type_cd, 
       name, e_mail_addr, login_failure_cnt, 
       admin_user, primary_user)
  Select user_id, account_id, user_type_cd, 
       name, e_mail_addr, login_failure_cnt, 
       admin_user, primary_user
  From pnet_user where account_id 
       Between 1 and 1000

如果 account_id 确实是字符串,则将其更改为数字

  Insert user (user_id, account_id, user_type_cd, 
       name, e_mail_addr, login_failure_cnt, 
       admin_user, primary_user)
  Select user_id, account_id, user_type_cd, 
       name, e_mail_addr, login_failure_cnt, 
       admin_user, primary_user
  From pnet_user where Cast(account_id as integer) 
       Between 1 and 1000
于 2013-05-21T16:06:11.233 回答