日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bcp+Sql语句抽取数据导出

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bcp+Sql语句抽取数据导出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  最近由于項目的需求,需要將項目數據庫中的數據按照一定的規則抽取出來,然后再導入到另外一個結構相同的數據庫中;之前也使用過bcp的功能,但是只使用bcp將整個表的數據導入到一個csv文件中,查看了一下bcp命令的參數,發現bcp命令后面可以加sql語句,然后帶上-queryout參數,就可以按照自己的邏輯將數據抽取出來,然后導入到csv文件中了,但是在實際使用中還是遇到了不少的困難,經過多次嘗試,最終還是得以完成了,也積累了如下幾個小經驗。
?  一、bcp命令可以直接在Command窗口運行,你可以單擊開始菜單-運行-cmd-進入Command窗口,然后輸入你編寫好的bcp語句
?  二、可以調用系統存儲過程master..xp_cmdshell來調用bcp命令
?  三、如果需要使用master..xp_cmdshell存儲過程,需要先打開sqlserver的xp_cmdshell功能,可以進入sqlserver外圍配置管理器-功能配置管理器-選中xp_cmdshell-開啟。也可以通過執行sql語句的方式打開xp_cmdshell功能,如下:
?    USE master?
?    EXEC sp_configure 'show advanced options', 1
?    RECONFIGURE WITH OVERRIDE
?    EXEC sp_configure 'xp_cmdshell', 1???? --1,開啟;0,關閉
?    RECONFIGURE WITH OVERRIDE
???????
?  四、調用master..xp_cmdshell調用bcp時,整個bcp命令要放在單引號內作為master..xp_cmdshell存儲過程的參數,如:
??    exec master..xp_cmdshell 'bcp sql語句 -queryout d:\test.csv -Usa -Ppassword -S127.0.0.1 -c '
?  五、sql語句中涉及的表名,必須用數據庫.擁有者.表名的格式,如SchoolDataBase.dbo.School
??????六、sql語句需要放在雙引號內,而在實際應用時,單引號和雙引號太多,而且嵌套,還是需要變化一下,采用字符串連接的方式,如:
??    ?"exec master..xp_cmdshell 'bcp \""+sql語句+"\"? -queryout d:\test.csv -Usa -Ppassword -S127.0.0.1 -c'"
?  七、sql語句不可以有回車換行符,這個是折騰我半天時間才發現的,沒辦法,只能再曲線救國,于是出現了如下的sql語句:
??    "exec master..xp_cmdshell 'bcp \""+sql語句.Replace("\r\n"," ")+"\"? -queryout -Usa -Ppassword -S127.0.0.1 -c'"
?

  這樣,將上面語句作為一條sql語句放在sqlCommand中進行執行即可。

? ? 經過上述一番折騰,終于可以抽取數據導出了。
?

轉載于:https://www.cnblogs.com/RascallySnake/archive/2010/11/17/1880287.html

總結

以上是生活随笔為你收集整理的bcp+Sql语句抽取数据导出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。