以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一个表能复制到另一个数据库中吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153001)

--  作者:czy66ds
--  发布时间:2020/7/28 14:49:00
--  一个表能复制到另一个数据库中吗?
如题
--  作者:有点蓝
--  发布时间:2020/7/28 15:04:00
--  
如果这个数据库没有表,需要先建表。如果有表,需要添加数据源,然后添加数据表,再填充数据
--  作者:czy66ds
--  发布时间:2020/7/28 15:09:00
--  
谢谢。在帮助中找不到相关内容,不知数据源写在哪里。
可以提供一段代码吗?

--  作者:有点蓝
--  发布时间:2020/7/28 15:13:00
--  
动态添加数据源:http://www.foxtable.com/webhelp/topics/1944.htm

可以使用SQLcommand返回数据库的临时表,然后填充数据

--  作者:绿火柴
--  发布时间:2020/7/28 15:23:00
--  
数据库中的操作方法,供参考.
Ad Hoc Distributed Queries的启用与关闭
有先后顺序,一行行启动. 用完后一行一行关闭.
启用Ad Hoc Distributed Queries: 
exec sp_configure \'show advanced options\',1 
reconfigure 
exec sp_configure \'Ad Hoc Distributed Queries\',1 
reconfigure 
   
关闭Ad Hoc Distributed Queries: 
exec sp_configure \'Ad Hoc Distributed Queries\',0 
reconfigure 
exec sp_configure \'show advanced options\',0 
reconfigure
 

从远程服务器复制表:
se lect * into 新表 f rom opendatasource(\'SQLOLEDB\',\'Data Source=192.1.……;User ID=SA; Password=\').源数据库.dbo.来源表

--  作者:绿火柴
--  发布时间:2020/7/28 15:25:00
--  
如果只是同一台服务器中复制,,就简单很多.请参考以下链接:
--  作者:czy66ds
--  发布时间:2020/7/28 21:20:00
--  
回复蓝大师:

我在包含原表的项目中的命令窗口执行如下代码

Connections.Add("gsjcc","Provider=xxxxxxxxx")
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "select * f rom{阿迪销售记录表9}"
Dim dt As DataTable
dt = cmd.ExecuteReader    \'目标临时表

For Each dr1 As DataRow In DataTables("阿迪销售记录表9").DataRows
    Dim dr As DataRow = dt.AddNew()
    For Each dc As DataCol In DataTables("阿迪销售记录表9").DataCols
        dr(dc.Name) = dr1(dc.name)
    Next
dr.Save
Next
结果报错:
当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。

哪里出了问题?

--  作者:有点蓝
--  发布时间:2020/7/28 21:24:00
--  
看一下SQLCommand帮助里对ExecuteReader用法的说明
--  作者:czy66ds
--  发布时间:2020/7/28 21:28:00
--  
回复绿火柴:
谢谢你出手相助

我在项目的“执行SQL”中执行 select * gs20150605.dbo.阿迪销售记录表9 f rom 阿迪销售记录表9
结果报错
\'gs20150605\' 附近有语法错误。

涉及的两个数据库都在同一个服务器上,何故?

--  作者:有点蓝
--  发布时间:2020/7/28 21:38:00
--  
百度学习一下“Insert into”的用法

select * into gs20150605...........