Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL 2基于返回第一个_Sql_Sql Server_Sql Insert - Fatal编程技术网

SQL 2基于返回第一个

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的答案显示了如何插入一条记录并获得结果。如

我正在根据Excel文件中的数据生成一系列插入到SQL Server 2014中

如何获取要放入第二个INSERT的第一个INSERT的ID的值

加拿大安大略省的简化示例:

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个这样的脚本才能作为一个大脚本运行,我会把你写的东西包装起来吗?性能不是一个问题。