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

StackOverflow https://stackoverflow.com/questions/2282771

  •  21-09-2019
  •  | 
  •  

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

这是我到目前为止得到的代码:

set @command ='bcp“选择vwtest。 -s myServer sql -umyuser -puser1'

EXEC master.dbo.xp_cmdshell @Command

有帮助吗?

解决方案

基于 BCP、BULK INSERT、OPENROWSET(推断链接服务器)的比较在这里:

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

...bcp 可能不是传输数据的最有效方式。您可能最好这样做:

  1. 创建一个 链接服务器实例 到另一个数据库
  2. 使用 INSERT 语句,以便根据链接服务器实例中公开的数据库中的记录填充表。

除了可能更高效之外,您只需设置一次链接服务器实例,而不是每次想要移动数据时运行 BCP 来创建输出脚本。

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

其他提示

<强> SURE !!

源的机器上使用此命令(通过它为您的需求):

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)

这应该从源服务器抢你的“视图名”的内容,把它放在一个临时文件,并插入该文件回新服务器上的新数据库。

通常,可以行加载这些数据转换成一个新的,临时分段表,并在那里形成,使用T-SQL或其它装置将这些数据插入到实际的表。

查看 MSDN文档在SQL BCP服务器2000 以对所有这些开关的细节和它们的含义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top