2012-01-10 71 views
7

使用SQL Server Management Studio有一種方法可以在選擇結果的網格中選擇一個或多個行,並讓SQL Server Mangement Studio生成一個或多個插入語句(每個行選擇一個)將哪些數據插入到具有相同模式的表中?從選擇結果創建一個插入腳本

編輯:我知道如何手動創建一個,但我希望會有東西會自動爲我創建一個。如果您對Toad很熟悉,可以讓Toad根據結果窗格中的數據生成插入,並且希望SSMS具有等價函數。

+2

[將選擇結果轉換爲插入腳本](http:// stackoverflow。com/questions/4526461 /轉換選擇結果到插入腳本) – 2012-01-10 15:28:44

回答

4
select 'insert into tableB values (', tableA.x ,',',tableA.y,',',tableA.z,')' from tableA 
4

我想你這裏有兩種選擇:

  1. 手動創建插件。例如:

    select Name, Surname, 
        'insert into Person (Name,surname) values ('''+Name+''','''+Surname+')' 
        from Person 
    

    這可以讓你的結果,並在最後一列,該行的插入腳本。然後,您可以選擇並將其粘貼到編輯器窗口中。

  2. 右鍵單擊db - > Tasks - > Generate Scripts。按然後選擇高級並選擇「僅數據」(默認僅限於架構)。

0

執行您的查詢並右鍵單擊列標題符合結果視圖中行號的空白區域。

然後,您可以選擇腳本電網結果

enter image description here

+5

你使用什麼版本的ssms?我使用的是2012版,但沒有看到「腳本網格結果」或「搜索網格結果」選項。 – greg 2013-11-05 22:28:50

+0

我也沒有。我認爲這個功能是由一個插件提供的。 OP? – 2013-11-18 21:02:13

+2

這是由[SSMS工具包](http://www.ssmstoolspack.com/)完成的,不幸的是SMSS 2012版本不是免費的 – tburi 2014-02-26 14:00:42

9

嘗試將查詢結果保存到一次性表。

例如:

SELECT * INTO disposable_customer_table FROM CUSTOMER_TABLE WHERE ID IN(在一些範圍

然後做一個數據庫 - >任務 - >生成腳本。

  • 選擇特定的數據庫對象。
  • 從表名列表中選擇disposable_customer_table
  • 選擇保存到文件。
  • 請務必進行高級設置,並從「數據類型到腳本」中選擇「僅數據」。

調整結果文件並將重新命名爲disposable_customer_table回到原始表名稱。

將其清理並丟棄disposable_customer_table