只有一列用于 SELECT 的 INSERT SELECT 语句

LOL*_*NO. 2 sql database sql-server select sql-insert

我正在使用 SQL Server Management Studio 18,并且我得到了包含以下列的下表:

表A

[ID]
[Name]
[InternalEmplID]
Run Code Online (Sandbox Code Playgroud)

表B

[ID]
[InternalEmplID]
[Month]
[Year]
Run Code Online (Sandbox Code Playgroud)

我想做一个INSERT SELECT到 TableB 的操作,也许像下面这样:

INSERT INTO TableB
(InternalEmplID, Month, Year)
VALUES
((SELECT InternalEmplIDFROM TableA WHERE Name = 'John Smith'), 'July', '2020')
Run Code Online (Sandbox Code Playgroud)

基本上,我只想创建INSERT SELECT一个从另一个表( )中获取列的位置InternalEmplID,然后对于其他列(MonthYear),我想添加不依赖于另一个表中的列/数据的数据。这可能吗?我不太熟悉INSERT SELECT's 所以这对我来说都是新的。

GMB*_*GMB 6

如果返回select多于一行,您的查询将失败。更灵活的选项是使用INSERT ... SELECT语法并在附加列中提供文字值:

INSERT INTO TableB (InternalEmplID, Month, Year)
SELECT InternalEmplIDFROM, 'July', '2020' 
FROM TableA 
WHERE Name = 'John Smith'
Run Code Online (Sandbox Code Playgroud)