SQL 2基于返回第一个
我正在根据Excel文件中的数据生成一系列插入到SQL Server 2014中 如何获取要放入第二个INSERT的第一个INSERT的ID的值 加拿大安大略省的简化示例:SQL 2基于返回第一个,sql,sql-server,sql-insert,Sql,Sql Server,Sql Insert,我正在根据Excel文件中的数据生成一系列插入到SQL Server 2014中 如何获取要放入第二个INSERT的第一个INSERT的ID的值 加拿大安大略省的简化示例: Insert into country (Name) values('canada'); Insert into provinces (CountryId, Name) values (???,'ontario'); 共有100个插入,因此性能不是问题 上面来自tshoemake的答案显示了如何插入一条记录并获得结果。如
Insert into country (Name) values('canada');
Insert into provinces (CountryId, Name) values (???,'ontario');
共有100个插入,因此性能不是问题 上面来自tshoemake的答案显示了如何插入一条记录并获得结果。如果您想在Country中插入许多记录,然后在Province中插入许多记录,您可能需要查看OUTPUT子句。您必须了解如何加入您的省份列表,因为此代码只会将
安大略省添加到每个国家:
declare @countryid int
Insert into country (Name) values('canada');
SELECT @countryid = SCOPE_IDENTITY()
Insert into provinces (CountryId, Name) values (@countryid,'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
上面来自tshoemake的答案显示了如何插入一条记录并获得结果。如果您想在Country中插入许多记录,然后在Province中插入许多记录,您可能需要查看OUTPUT子句。您必须了解如何加入您的省份列表,因为此代码只会将安大略省添加到每个国家:
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
谢谢如果我必须写100个这样的脚本才能作为一个大脚本运行,我会把你写的东西包装起来吗?性能不是问题。谢谢!如果我必须写100个这样的脚本才能作为一个大脚本运行,我会把你写的东西包装起来吗?性能不是一个问题。