日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer數(shù)據(jù)庫遠程查詢并批量導入數(shù)據(jù)

SQL Server數(shù)據(jù)庫遠程查詢批量導入數(shù)據(jù)的方法是本文我們主要要介紹的內(nèi)容,接下來就讓我們一起來了解一下這部分內(nèi)容吧。

應(yīng)用背景:

兩個數(shù)據(jù)庫的表結(jié)構(gòu)相同,但表名前綴不一樣,現(xiàn)要保持原有的數(shù)據(jù)表的ID導過來不變。用數(shù)據(jù)庫批量導入/導出工具行不通,只能自己寫SQL語句。奈何有180多個表,手工寫肯定是累S個人。

解決辦法:

先用 OpenDataSource 遠程連接服務(wù)器,然后執(zhí)行插入語句可行。其語句如下:

 
 
 
  1. truncatetableActUser
  2. SETIDENTITY_INSERTActUseron
  3. insertintoActUser(
  4. [ID],[PassWord],[UserName]
  5. )select
  6. [ID],[PassWord],[UserName]
  7. fromopendatasource('SQLOLEDB','datasource=DBSERVERIP;uid=sa;password=sa').TEST.dbo.ActUser
  8. SETIDENTITY_INSERTActUseroff

然后我想到用游標結(jié)合 sysobjects和syscolumns 來實現(xiàn)自動生成這樣的語句,其代碼如下:

 
 
 
  1. declaremycursorcursor
  2. for
  3. select[id],[name]fromdbo.sysobjectswheretype='U'
  4. openmycursor
  5. declare@tablenamesysname
  6. declare@tableidsysname
  7. fetchnextfrommycursorinto@tableid,@tablename--獲取表名
  8. while(@@fetch_status=0)
  9. begin
  10. print'--['+@tablename+']'
  11. --拼湊字段,將行轉(zhuǎn)為字符串--
  12. DECLARE@fieldsvarchar(8000)
  13. set@fields=''
  14. SELECT@fields=''+@fields+'],['+nameFROMsyscolumnsWHEREid=object_id(@tablename)ORDERBYcolid
  15. set@fields='['+STUFF(@fields,1,3,'')+']'
  16. --拼湊字段End--
  17. --print@fields
  18. /*******避免因字段過長而導致截斷情形********/
  19. print'truncatetable'+@tablename--清理數(shù)據(jù)
  20. print'SETIDENTITY_INSERT'+@tablename+'on'--可使自增長列轉(zhuǎn)為可插入數(shù)據(jù),不用重新生成ID
  21. print'insertinto'+@tablename+'('
  22. print@fields
  23. print')select'
  24. print@fields
  25. print'fromopendatasource('
  26. +'''SQLOLEDB'',''datasource=DBServerIP;uid=sa;password=sa'').TEST.dbo.'
  27. +replace(@tablename,'Wait_','Has_')
  28. print'SETIDENTITY_INSERT'+@tablename+'off'
  29. printchar(13)--換行
  30. fetchnextfrommycursorinto@tableid,@tablename
  31. end
  32. closemycursor
  33. deallocatemycursor 

將生成的SQL 語句放到查詢分析器里執(zhí)行一下,生成SQL 語句,然后執(zhí)行一下,就可以成功地批量導入數(shù)據(jù)了。

關(guān)于SQL Server數(shù)據(jù)庫遠程查詢并批量導入數(shù)據(jù)的方法就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!


分享標題:SQLServer數(shù)據(jù)庫遠程查詢并批量導入數(shù)據(jù)
文章路徑:http://www.dlmjj.cn/article/dhpoedi.html