2017-02-10 58 views
0

我是新来的SQL,我正在使用Microsoft SQL Server 2012,我试图创建一个表,记录ID名称和姓氏在第一次创建一个表有两列int和名称然后我插入记录在他们中都完美然后添加一个列last_name之后,我试图插入数据在我面对的问题是,我不能插入记录last_name平行于记录的ID和名称。不能插入last_name记录并行名称记录

create table test (id int , name varchar(20)); 

insert into test(id,name) 
values(1,'Abid'),(2,'Muhammad'),(3,'Raza'),(4,'Khan'); 

alter table test 
add last_name varchar(20) 
+0

你尝试了什么,错误是什么? “平行”是什么意思? 'insert into test(id,name,last_name) values(1,'Abid','Whatever')' –

+0

你应该可以解释你的问题吗?你发布的脚本将完美运行,那么* actual *问题是什么? –

+2

“与ID和名称的记录平行”是什么?这是否意味着你想更新一行?例如'更新测试集last_name ='穆罕默德'其中id = 1' – SqlZim

回答

0

我不知道你想做什么。如果你想以填补LAST_NAME列已经创建的行,你需要使用UPDATE子句,而不是插入:

UPDATE test 
SET last_name = 'Abid's last name' 
from test where id = 1 

,并重复所有现有行。你也可以这样做:

create table test (id int , name varchar(20)); 
insert into test(id,name) 
values(1,'Abid'),(2,'Muhammad'),(3,'Raza'),(4,'Khan'); 
alter table test 
add last_name varchar(20) 
TRUNCATE TABLE test 
insert into test(id,name,last_name) 
values(1,'Abid','I'),(2,'Muhammad','Love'),(3,'Raza','SQL'),(4,'Khan','Server'); 

快乐编码!

+0

非常感谢这很好解决了我的问题,但我有查询如果我只想只更新last_name列我不想写出id和name的值我该怎么办? –

+0

在这种情况下,您将执行INSERT INTO测试(姓氏)值('Value1')' –

0

在一行中修改列,你必须要更新该行,你的情况:

update test set last_name = 'last name' where id=1 

记得WHERE子句,如果你不放在哪里,你去更新所有行中的所有姓氏列。

希望对您有所帮助!