gpt4 book ai didi

sql - 如何将链接服务器上运行的存储过程的输出发送到 csv 文件中?

转载 作者:行者123 更新时间:2023-12-02 04:23:32 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2014,并且在我的本地 PC 上运行以下 T-SQL 查询:

USE [MyDatabase]

EXEC [xxx.yyy.10.23].[Emp_LIVE].[dbo].[procBIInterfaceEmployee]

[xxx.yyy.10.23] 是链接服务器。当我执行此 T-SQL 代码时,它运行良好并返回预期结果。

我想将上述代码包装到一个新的 T-SQL 查询中,该查询会将结果写入我本地 PC 上的一个 csv 文件。

在 StackOverflow.com 上搜索解决方案,我找到了这两个问题:

  1. Creating a CSV file in a SQL Server stored procedure
  2. How to write using BCP to a remote SQL Server?

因此,我想出了以下内容(基于上述 2 个问题的答案):

DECLARE @string AS NVARCHAR(4000)

SELECT @string = 'BCP "exec [xxx.yyy.10.23].[Emp_LIVE].[dbo].[procBIInterfaceEmployee]" QUERYOUT c:\testfolder\empdata.csv -c -T -t, -S"xxx.yyy.10.27\BI-SQL"'

EXEC master.dbo.xp_cmdshell @string

xxx.yyy.10.27\BI-SQL 是托管 [MyDatabase] 的远程服务器。 BI-SQL 是该服务器的实例。

运行我的新代码集,出现以下错误:

SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]Unable to open BCP host data-file
NULL

我该如何推进?

最佳答案

试试这个:

  1. 将您的 sp 结果插入到本地表中
  2. 然后从您的本地表导出。

USE [MyDatabase]GO

CREATE TABLE [dbo].[procBIInterfaceEmployee](--whats in the table)

INSERT INTO [dbo].[procBIInterfaceEmployee]EXEC [xxx.yyy.10.23].[Emp_LIVE].[dbo].[procBIInterfaceEmployee]

EXEC master.dbo.xp_cmdshell 'BCP "[MyDatabase].[dbo].[procBIInterfaceEmployee]" OUT c:\testfolder\empdata.csv -c -T -t, -S"LOCALHOST" '

注意:如果你有实例,你需要执行 -S"LOCALHOST\SQLEXPRESS"

有关所有参数,请参阅 bcp 页面。 https://learn.microsoft.com/en-us/sql/tools/bcp-utility

关于sql - 如何将链接服务器上运行的存储过程的输出发送到 csv 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com