2017-02-10 57 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子句,如果你不放在哪裏,你去更新所有行中的所有姓氏列。

希望對您有所幫助!