在 SSMS 中是否有右键单击 INSERT INTO SELECT 的方法,或者菜单是否可以调整?

Is there a right-click way to INSERT INTO SELECT in SSMS, or is the menu tweakable?

我想知道是否可以在 SQL Server Manegement Studio (SSMS) 中使用 use of right-click 执行 insert into select statement。如果没有,那是可以调整的吗?

当右击数据库中的table时(例如here,我知道我可以右击目标table,select 'Script Table as'/'Select to',粘贴脚本,右击source-table, select 'Script Table as'/'Select to' 然后粘贴到刚才粘贴的那一块脚本而不是 VALUES 部分。我想以某种方式绕过这些步骤,可能已经有一种简单的方法可以做到这一点。但后来我必须看到 'Insert into select' 或其他内容。我希望 SSMS 生成我的脚本是这样的:

USE [DatabaseName]
GO

INSERT INTO [TableAA_New]
       ([A]
       ,[B]
       ,[C])

SELECT  [A]
        ,[B]
        ,[C]
  FROM [TableAA]
GO

所以,我的问题是是否有一些我看不到的右键单击选项?

如果没有,有没有办法在右键选项中增加这样的可能性?我可以调整那些吗?实际上是一种扩展 SSMS 中的右键单击菜单...任何人都可以告诉我或指导我正确的方向吗?

不是 100% 这就是你的意思,但是你可以

如果你有

SELECT * FROM MyTable

Select 然后右击它。您将获得一个带有选项 "Design Query in Editor..."

的上下文菜单

这会弹出一个 UI 用于构建 SQL。在这个 window 的顶部是一个部分,您可以在其中看到所涉及的 table。如果您右键单击此顶部 window 中的白色 space,您将获得另一个带有 "Change type" 的上下文菜单,这允许您将语句更改为插入语句。

如果您 select 插入值,那么您可以输入要插入的值到 table(在 UI 上)

但我希望你想要 "insert results"。 Select这意味着您需要 select 目标 table。然后,您需要通过更新 UI 上的追加列将值从一个 table 映射到另一个。如果目标 tables 具有与源相同的列,则追加列将自动更新以匹配这两列。

一旦完成你就得到

INSERT INTO OtherTable
         (A,B,C)
SELECT A,B,X
FROM MyTable

希望对您有所帮助

根据@Paul-Spain 给出的答案,请参阅下面的一种方法,通过(右键)单击鼠标将插入到 select 语句中。实际上,您在编辑器中使用了设计查询。

下面描述了如何使用设计查询从源 table MyTable 插入 select 到目标 table OtherTable。

首先一段脚本让你开始,例如制作 MyTable 和 OtherTable,并填充 MyTable。

CREATE TABLE [dbo].[MyTable](
[A] [nvarchar](100) NULL,
[B] [nvarchar](100) NULL,
[C] [nvarchar](100) NULL
) 

CREATE TABLE [dbo].[OtherTable](
[A] [nvarchar](100) NULL,
[B] [nvarchar](100) NULL,
[C] [nvarchar](100) NULL
) 

insert into MyTable values (1,2,3),(4,5,6),(7,8,9);

1:右键单击查询中的某处window

2:弹出一个窗口。 Select 您想要的 table 作为 SELECT-table。

3:右击某处,select更改类型,插入结果。因此,您实际上命令 dbms 插入基于 MyTable 的当前查询的结果。所以你说把它插入某个地方。你在下一个 window 中定义插入它的位置。

4: Select table 也插入哪里。如果您还没有 table,则必须制作它。 (这在这个编辑器中也是可能的)。

5:告诉 dbms 哪些列要 select。

6: 运行 生成的脚本。

7:数据插入到OtherTable中。完毕。