我正在根据Excel文件中的数据生成一系列插件到SQL Server 2014
如何获取要放入第二个
的第一个INSERT的ID值安大略省是加拿大省的简化示例:
Insert into country (Name) values('canada');
Insert into provinces (CountryId, Name) values (???,'ontario');
有100个插页,因此性能不是问题。
答案 0 :(得分:3)
declare @countryid int
Insert into country (Name) values('canada');
SELECT @countryid = SCOPE_IDENTITY()
Insert into provinces (CountryId, Name) values (@countryid,'ontario');
答案 1 :(得分:1)
tshoemake上面的答案显示了如何插入一条记录并获得结果。如果要在Country中插入许多记录,然后在省中插入许多记录,则可能需要查看OUTPUT子句。您必须了解如何加入省份列表,因为此代码只会向每个国家/地区添加Ontario
:
create table __country
(
id int identity(1,1) primary key,
Name varchar(5000)
)
CREATE TABLE __Provinces (
countryid int,
name varchar(5000)
)
CREATE TABLE #tempIDs
(
id int
)
INSERT INTO __Country
OUTPUT inserted.id
INTO #tempIDs
values ('canada'), values('USA')
insert into __Provinces
select #tempIDs.id, 'ontario'
from #tempIDs
join __country
ON __country.id = #tempIDs.id
select * from __Provinces