Sql server 如何将数据从另一个数据库(另一台服务器)中的视图导入SQL server 2000中的表中?

Sql server 如何将数据从另一个数据库(另一台服务器)中的视图导入SQL server 2000中的表中?,sql-server,sql-server-2000,bcp,Sql Server,Sql Server 2000,Bcp,我曾考虑使用bcp命令来解决用户身份验证问题,但bcp命令是否能够导入到数据库中的表中?顺便说一下,我正在使用SQLServer2000环境 以下是我目前掌握的代码: SET@Command='bcp'从[myserver\sql].test.dbo.vwTest“queryout dbo.test-C ACP-C-r\n-t”;“-S myserver\sql-Umyuser-Puser1” EXEC master.dbo.xp_cmdshell@Command 当然 在源计算机上使用此命令(

我曾考虑使用bcp命令来解决用户身份验证问题,但bcp命令是否能够导入到数据库中的表中?顺便说一下,我正在使用SQLServer2000环境

以下是我目前掌握的代码:

SET@Command='bcp'从[myserver\sql].test.dbo.vwTest“queryout dbo.test-C ACP-C-r\n-t”;“-S myserver\sql-Umyuser-Puser1”

EXEC master.dbo.xp_cmdshell@Command


当然

在源计算机上使用此命令(根据需要采用):

bcp database.dbo.viewname out c:\temp\viewname.bcp
然后使用以下方法将数据导入目标系统:

bcp newdatabase.dbo.importtable in c:\temp\viewname.bcp 
    -c -S(servername) -U(username) -P(password)
这应该从源服务器获取“viewname”的内容,将其放入临时文件中,然后将该文件插入新服务器上的新数据库中

通常,您会将这些数据行加载到一个新的临时暂存表中,并在其中形成表单,使用T-SQL或其他方法将该数据插入到实际的表中

查看以了解所有这些开关及其含义的详细信息。

基于:

…bcp实用程序的进程已用完。要跨进程内存空间移动数据,bcp必须使用进程间数据封送。进程间数据封送是将方法调用的参数转换为字节流的过程。这会给处理器增加大量负载。但是,由于bcp[两者]在客户端进程中解析数据并[转换]数据为[本机]存储格式,因此它们可以从SQL Server进程中卸载解析和数据转换

…bcp可能不是最有效的数据传输方式。您最好:

  • 创建到另一个数据库的
  • 使用
    INSERT
    语句,以便根据链接服务器实例中公开的数据库中的记录填充表
  • 除了可能更高效之外,您只需要设置链接服务器实例一次,而不是每次移动数据时都运行BCP来创建输出脚本


    请注意,链接的服务器实例基于其他数据库上的用户,因此对其他数据库的权限基于该用户的权限。

    非常感谢您!链接服务器实例的工作效率非常高。。。谢谢大家回答我的问题:)