2016-08-25 5 views
3

Ich versuche, Werte in ein Feld aus einer anderen Tabelle einzufügen.SQL Server-Unterabfrage hat mehr als 1 Wert zurückgegeben. Dies ist nicht erlaubt, wenn die Unterabfrage beim Einfügen von einem anderen select

Dies ist, was mein Code aussieht,

declare @inventory_Num nvarchar(50); 
set @inventory_Num=(select inventory_Num from tblOrders); 
insert into tblInventoryDetails(inventoy_Num,Date) 
select @inventory_Num,getDate() 

Ich kenne meine Sub-Abfrage 1000 von Zeilen zurückgibt, aber ich brauche alle inventory_num von Aufträgen zu laden.

+0

'sql' verwenden können, ist nicht genug! Bitte geben Sie Ihr DBMS (Hersteller und Version) an – Shnugo

+0

http://stackoverflow.com/search?q=%5Bsql-server%5D+subquery+returned+mehr+als+1+wert –

+2

Insert .. select lädt alle Zeilen http : //www.w3schools.com/sql/sql_insert_into_select.asp Aber sind Sie sicher, wenn Sie diese Abfrage wiederholen, wird es die Daten erneut laden. Sollte es keine Checks geben, um Doppelgänger zu verhindern? – Serg

Antwort

2

Hope this Works

insert into tblInventoryDetails(inventoy_Num,Date) 
select inventory_Num,getDate() 'Date' from tblOrders 
+1

Bitte markieren Sie es als Antwort, wenn Sie es nützlich finden @ user6756721 – Ashu

2

Sie können dies tun, indem

tun
INSERT INTO tblInventoryDetails(inventoy_Num,Date) 
SELECT inventory_Num,GETDATE() 
FROM tblOrders 
2

Sie Abfrage wie diese

insert into tblInventoryDetails (inventoy_Num, Date) 
select inventory_Num, getdate() 
from tblOrders 
+0

Ich muss die oben abgerufenen Daten in .csv Dateiformat laden und in einigen Ordnerpfad speichern. Wie kann ich das erreichen? Vielen Dank im Voraus – LT268

+0

@ LT268-Sie können diese Abfrage für die gleiche einfügen in OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; Datenbank = D: \ testing.csv;', 'SELECT * FROM [SheetName $] ') Wählen Sie * aus SQLServerTable –

Verwandte Themen