Sql-Server

將特定列導出到 INSERT 語句

  • February 9, 2021

有沒有辦法將特定列和固定數量的行從表中導出到 INSERT 語句?

我正在嘗試根據大型生產表生成這些用於單元測試,因此在 SQL Server Management Studio 中使用“生成腳本”之類的東西是不可能的。

有一些工具可以做到這一點,但在 MySQL 中如此微不足道的事情在 SQL Server 中不應該那麼複雜(至少我希望不會)。

使用導入/導出嚮導,而不是導出整個表,選擇 sql 導出特定的行和列。

您可以編寫類似 : 的 sql,select column1, column2 from Table1 where some_condition或者如果您不關心特定數據,則可以使用 top 命令提取您需要的任意數量的行。

**編輯:**以下是導入導出嚮導的螢幕截圖(從 SSMS 啟動):

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

編輯:

@Robin 在您的情況下,您可以做兩件事-

  1. 選擇類似Redgate 的 sql 數據生成器,它會生成測試數據——或者——
  2. 您可以按照我的建議進行 1 次數據導入,然備份份數據庫,在接下來的測試中,您可以繼續從備份中恢復數據庫(請記住,您導入的數據不會改變)。我想不出另一種方法來做你想要實現的目標,所以會保留這個讓其他人回答……

這是我所做的事情,正是為了滿足您的要求…

(雖然我需要我在 MySQL 中的插入語句將某些表的部分傳輸到 Apache 伺服器。所以語法可能會有所不同)。

SELECT CONCAT(
'INSERT INTO `db_name`.`table_name`
(`col1`,
`col2`,
`col3`)
VALUES
(
' , [col1] , ','
, [col2], ','
, [col3], ');'
)
FROM [dbo].[db_name]
 where col5 = 'some condition';

然後您可以右鍵點擊結果並將它們另存為… CSV 文件。然後在 notepad++ 中打開 CSV 文件並將所有雙引號 " 替換為空。

而且我有 7000 個插入語句在 mysqlworkbench 中執行,並且只將我需要的特定列傳輸到不同的數據庫。

您可以使用 workbench 或 mssms 通過右鍵點擊任一程序中的表並複製到您的選擇語句來為目標表生成插入語句作為起點。

此方法的優點還在於,如果您要執行插入的目標可能與源具有不同的列名。

引用自:https://dba.stackexchange.com/questions/44457