Sql server 2012 选择INSERT INTO语句的值

Sql server 2012 选择INSERT INTO语句的值,sql-server-2012,select-into,Sql Server 2012,Select Into,我需要从表1中选择几列。我只需要插入这些列中的一列以及一些任意硬编码的数据,并将其插入到表2中,同时还需要返回原始的select语句 基本上,我希望得到INSERT INTO语句的结果,而不是SSMS中得到的“(受影响的1行)” 有办法做到这一点吗 下面是一个SQLFiddle: 那些记录可以很好地插入。但是,我希望SELECT语句的结果返回给我,这样我就可以一次完成所有操作,而无需多次读取或跳闸。这可能吗?使用批处理语句并将中间结果存储在表变量中: DECLARE @intermediat

我需要从表1中选择几列。我只需要插入这些列中的一列以及一些任意硬编码的数据,并将其插入到表2中,同时还需要返回原始的select语句

基本上,我希望得到INSERT INTO语句的结果,而不是SSMS中得到的“(受影响的1行)”

有办法做到这一点吗


下面是一个SQLFiddle:


那些记录可以很好地插入。但是,我希望SELECT语句的结果返回给我,这样我就可以一次完成所有操作,而无需多次读取或跳闸。这可能吗?

使用批处理语句并将中间结果存储在表变量中:

DECLARE @intermediate TABLE (
    col1 type,
    col2 type,
    col3 type
);
INSERT INTO @intermediate VALUES ( ... );
INSERT INTO destinationTable SELECT * FROM @intermediate;
SELECT @intermediate;

如果使用此from代码,您可以在单个命令文本字符串中包含所有这些内容。

使用批处理语句并将中间结果存储在表变量中:

DECLARE @intermediate TABLE (
    col1 type,
    col2 type,
    col3 type
);
INSERT INTO @intermediate VALUES ( ... );
INSERT INTO destinationTable SELECT * FROM @intermediate;
SELECT @intermediate;

如果从代码中使用此选项,您可以在单个命令文本字符串中使用所有选项。

您是否尝试过类似的操作:

INSERT INTO Table1 (
SELECT Phrase, Notes, GetDate, 1
FROM Table2
UNION
SELECT Phrase, 'This is an automatic note by the system', GETDATE(), 1
UNION
)

你有没有试过这样的方法:

INSERT INTO Table1 (
SELECT Phrase, Notes, GetDate, 1
FROM Table2
UNION
SELECT Phrase, 'This is an automatic note by the system', GETDATE(), 1
UNION
)

您可以使用
OUTPUT
子句:

INSERT INTO Table2
OUTPUT inserted.*
SELECT Phrase, 'This is an automatic note by the system', GETDATE(), 1
FROM Table1

您可以使用
OUTPUT
子句:

INSERT INTO Table2
OUTPUT inserted.*
SELECT Phrase, 'This is an automatic note by the system', GETDATE(), 1
FROM Table1