Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[sql]怎麽快速從現有的資料庫Table產生出符合過濾條件資料的insert sql語法

2019-03-23 Saturday
[sql]怎麽快速從現有的資料庫Table產生產生出符合過濾條件的insert sql語法.jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

有時候想要把現有的資料庫裡面的data傳遞給別人,但是又不想要把整個資料庫都給對方,這個時候給對方insert data的sql檔案是最快的。

但是,如果要自己手寫這個sql語法,如果只有1~2筆還好,但是如果有幾十筆呢?

如果不想要產生整個Table的資料,而是只有符合某些特定條件的才要,那麽要一筆一筆弄也太累了。

有沒有什麽工具可以使用讓這件事情變成只需要幾秒鐘就可以做到的呢?

這篇介紹一下兩種情景的產生方式?

快速從現有資料庫Table產生出insert 資料的 sql

有兩種方式可以用:

  1. 當想要把整個Table資料變成insert sql - 可以使用 SQL Server Management Studio (SSMS)
  2. 如果想要Table的某些條件的資料變成insert sql - 可以使用Visual Studio裡面的SQL Server Data Tools (SSDT)

使用SSMS匯出整個Table的資料為insert sql

SSMS内建可以產生出某一個table的所有資料為insert語法,只需要透過Generate Script的語法即可。

SSMS可以透過這邊傳送門下載的到
對Table所在的DB點【右鍵】 -> 【Tasks】 -> 【Generate Scripts...】
Ssms_2019-03-23_17-26-27.png
選擇Generate Scripts
選取要匯出的table
這邊看需求,以這邊例子想匯出Address這個table
Ssms_2019-03-23_17-32-17.png
選擇Address table
設定要產生的script為Data Only
  1. 先選擇Advanced的按鈕
  2. 找到Type of data to script - 選擇 Data Only
Ssms_2019-03-23_17-33-11.png
設定script選項為Data Only
檢查最後匯出結果
Ssms_2019-03-23_17-37-18.png
看到產生的sql語法

透過SSMS可以快速匯出資料的insert sql,但是有個很大的問題是這個是所有的資料

如果說資料很多,但是只希望裡面資料的某一些條件的資料怎麽辦?

透過Visual Studio的SSDT產生符合條件的sql insert語法

上面SSMS的最大問題是沒有辦法對要產生的資料先做過濾。假設今天的需求是只產生出地址在加拿大的怎麽辦?

如果有這種需求,就可以使用VS搭配SST做到。

SSDT好像預設會裝,如果沒有的話,可以透過重新呼叫VS的安裝檔案,然後透過Modify方式選擇SSDT。
開啓Server Explorer加入DB的連線

開啓Server Explorer然後加入一個到DB的connection:

2019-03-23_17-42-50.png
設定DB連線

如果找不到Server Explorer,可以透過右上角的輸入框來搜索找到。
透過Show Table Data進入顯示所有資料的畫面
展開上面設定的連線,對要匯出的table點選【右鍵】,然後選擇Show Table Data:
devenv_2019-03-23_17-49-55.png
顯示table的資料
設定搜索條件
  1. 點選上面漏斗的Icon - 代表filter條件
  2. 設定要過濾的條件 - 這邊是對CountryRegion這個欄位過濾Canada
  3. 按下OK出發過濾
devenv_2019-03-23_17-54-17.png
設定過濾條件
選擇Script把結果產生成爲sql

當按下OK之後,資料會被依照條件過濾,這個時候可以兩種方式產生為insert sql語法:

  1. 第一個檔案的icon是Script,把sql直接用另外一個頁簽呈現
  2. 第二個檔案的icon是script to file,把sql產生到檔案
devenv_2019-03-23_17-55-48.png
產生sql語法的方法

結語

以上就是兩種快速產生資料insert sql的方式。

理論上這篇提到的兩個工具作爲.NET的工程師應該都會裝,因此應該不需要額外在裝什麽。

不過如果有更好的工具也歡迎下面留言分享。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
2019-03-23 Saturday
comments powered by Disqus