自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫遠(yuǎn)程查詢并批量導(dǎo)入數(shù)據(jù)

數(shù)據(jù)庫 SQL Server
本文我們主要介紹了SQL Server數(shù)據(jù)庫遠(yuǎn)程查詢并批量導(dǎo)入數(shù)據(jù)的操作,并給出了詳細(xì)的代碼示例,希望能夠?qū)δ兴鶐椭?/div>

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

應(yīng)用背景:

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

解決辦法:

先用 OpenDataSource 遠(yuǎn)程連接服務(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 

 

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

  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. /*******避免因字段過長(zhǎng)而導(dǎo)致截?cái)嗲樾?*******/  
  19. print'truncatetable'+@tablename--清理數(shù)據(jù)  
  20. print'SETIDENTITY_INSERT'+@tablename+'on'--可使自增長(zhǎng)列轉(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í)行一下,就可以成功地批量導(dǎo)入數(shù)據(jù)了。

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

【編輯推薦】

  1. SQL Server 2005系統(tǒng)數(shù)據(jù)庫的簡(jiǎn)單介紹
  2. SQL Server數(shù)據(jù)庫利用SQL語句使用事務(wù)詳解
  3. SQL Server數(shù)據(jù)庫ROW_NUMBER()函數(shù)使用詳解
  4. 關(guān)閉SQL Server 2005遠(yuǎn)程連接以及其它對(duì)外服務(wù)
  5. SQL Server數(shù)據(jù)庫DATEDIFF的參數(shù)介紹及使用示例
     
責(zé)任編輯:趙鵬 來源: 博客園
相關(guān)推薦

2010-11-09 17:19:49

SQL Server導(dǎo)

2010-10-22 11:22:33

SQL Server數(shù)

2011-08-25 16:13:31

SQL Server批量替換數(shù)據(jù)

2010-07-15 17:28:50

SQL Server

2010-07-21 14:17:36

SQL Server數(shù)

2009-07-06 21:20:34

SQL Server數(shù)

2011-03-11 13:26:23

SQL Server數(shù)導(dǎo)入數(shù)據(jù)

2011-08-04 15:55:25

SQL Server數(shù)

2010-09-08 16:53:43

SQL查詢循環(huán)

2010-07-21 14:11:36

SQL Server

2009-11-18 16:16:51

Oracle數(shù)據(jù)庫

2011-07-28 14:31:47

SQL Server數(shù)存儲(chǔ)過程

2009-01-27 21:00:00

服務(wù)器數(shù)據(jù)庫SQL Server

2011-08-15 15:53:51

SQL Server數(shù)批量操作

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫

2010-07-08 11:05:14

SQL Server數(shù)

2009-04-30 09:28:05

SynonymOpenquerySQL Server

2011-03-04 13:07:06

SQL Server數(shù)

2011-04-01 14:34:31

SQL Server數(shù)嵌套子查詢

2011-08-30 11:04:30

鏈接查詢內(nèi)連接外連接
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)