這個很困擾吧!
因為MSSQL沒提供這種功能,
今天閒滋滋,突然有人問起,
所以小芸就花了一點時間測試,
沒想到有測出來耶,小小成就感,哈!
運用的原理很簡單,
先查詢資料,
Ex: select * from TABLENAME where 條件
其中 "*" 要擺入我們要組的 insert 語法,
Ex: insert TABLENAME values('a','b','c')
接下來要將這二個以字串的方式, 結合在一齊囉!!
就變成
select 'insert into TABLENAME values(''' + FIELD + ''',''' + FIELD + ''',''' + FIELD + ''')' as NEWFIELD from TABLENAME
這樣子是輸出成一列一列的查詢結果,
但不好複製,所以我們再動一次手腳,
可以把查詢結果,再存到文字檔中,
接著要利用的是BCP(Bulk Copy Program),
需要在cmd模式下執行唷!
Ex: bcp "SELECT * FROM DBNAME.dbo.TABLENAME" queryout Contacts.txt -c -T
他會將查詢結果存到 Contacts.txt 這個文字檔中,
因為沒有指定路徑,所以會儲存在開啟cmd的所在目錄,
通常是 C:\Documents and Settings\登入帳號\Contacts.txt。
將上面那二串結合的字串,再加入bcp後變成:
「
bcp "select 'insert into TABLENAME values(''' + FIELD + ''',''' + FIELD + ''',''' + FIELD + ''')' as NEWFIELD from DBNAME.dbo.DBTABLE" queryout Contacts.txt -c -T
」
妳就會發現有一隻輸出好的 insert into 語法,
存在 Contacts.txt 檔案中囉!
說明:
DBNAME:資料庫名稱
TABLENAME:資料表名稱
FIELD:欄位名稱
NEWFIELD:欄位名稱(隨意命名)
-c:字元類型
-T:代表信任連接
因為MSSQL沒提供這種功能,
今天閒滋滋,突然有人問起,
所以小芸就花了一點時間測試,
沒想到有測出來耶,小小成就感,哈!
運用的原理很簡單,
先查詢資料,
Ex: select * from TABLENAME where 條件
其中 "*" 要擺入我們要組的 insert 語法,
Ex: insert TABLENAME values('a','b','c')
接下來要將這二個以字串的方式, 結合在一齊囉!!
就變成
select 'insert into TABLENAME values(''' + FIELD + ''',''' + FIELD + ''',''' + FIELD + ''')' as NEWFIELD from TABLENAME
這樣子是輸出成一列一列的查詢結果,
但不好複製,所以我們再動一次手腳,
可以把查詢結果,再存到文字檔中,
接著要利用的是BCP(Bulk Copy Program),
需要在cmd模式下執行唷!
Ex: bcp "SELECT * FROM DBNAME.dbo.TABLENAME" queryout Contacts.txt -c -T
他會將查詢結果存到 Contacts.txt 這個文字檔中,
因為沒有指定路徑,所以會儲存在開啟cmd的所在目錄,
通常是 C:\Documents and Settings\登入帳號\Contacts.txt。
將上面那二串結合的字串,再加入bcp後變成:
「
bcp "select 'insert into TABLENAME values(''' + FIELD + ''',''' + FIELD + ''',''' + FIELD + ''')' as NEWFIELD from DBNAME.dbo.DBTABLE" queryout Contacts.txt -c -T
」
妳就會發現有一隻輸出好的 insert into 語法,
存在 Contacts.txt 檔案中囉!
說明:
DBNAME:資料庫名稱
TABLENAME:資料表名稱
FIELD:欄位名稱
NEWFIELD:欄位名稱(隨意命名)
-c:字元類型
-T:代表信任連接
全站熱搜
留言列表