SQL Server 跨庫複製表資料的解決辦法

來源:互聯網
上載者:User

跨庫複製表資料,有很多種方法,最常見的是寫程式來大量匯入資料了,但是這種方法並不是最優方法,今天就用到了一個很犀利的方法,可以完美在 Sql Server 2005 和 Sql Server 2008 中執行!

格式如下:

insert into tableA  SELECT * FROM          OPENDATASOURCE('SQLOLEDB', 'Data Source=127.0.0.1;User ID=sa;Password=sasasa').databaseName.dbo.tableB  

找到這個方法後,準備執行,可是卻並不太順利,跨庫複製表資料的途中,接連出現兩個錯誤,第一個錯誤:

SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.

翻譯:

SQL Server 阻止了對組件 'Ad Hoc Distributed Queries' 的
STATEMENT'OpenRowset/OpenDatasource'
的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'Ad Hoc
Distributed Queries'。有關啟用 'Ad Hoc Distributed Queries' 的詳細資料,請參閱 SQL
Server 聯機叢書中的 "介面區配置器"。

 

解決辦法:

 

啟用  Ad Hoc Distributed Queries:

exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure

待插入完成後再關閉 Ad Hoc Distributed Queries:

exec sp_configure 'Ad Hoc Distributed Queries',0reconfigureexec sp_configure 'show advanced options',0reconfigure

錯誤2 :

An explicit value for the identity column in table 'cms_TagSubject' can only be specified when a column list is used and IDENTITY_INSERT is ON.

這個真的很糾結,沒辦法,只有 google 了,之後發現可以 在執行的 SQL 陳述式前後加上:

SET IDENTITY_INSERT tableA ON--執行的SQLSET IDENTITY_INSERT tableB ON

試過之後,發現這個方法並不能解決,無奈,最後 找了半天,在國外論壇找到瞭解決辦法,就是,要寫查入列的詳細資料

 

解決辦法:

insert into tableA (column1,column2.....) 
SELECT * FROM
OPENDATASOURCE('SQLOLEDB', 'Data Source=127.0.0.1,3422;User ID=sa;Password=sasasa;').databaseName.dbo.tableB

終於大功告成,另外,利用這種方法,還是可以直接從 Excel 裡面查詢的,呵呵,真強大:

SELECT *  FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=D:\a.xls',[sheet1$])

跨庫複製表資料,一種很好的方法,呵呵,希望能對大家有所協助

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.