使用 BCP 从 SPROC 读写的简单方法

发布于 2024-10-07 10:29:38 字数 34 浏览 3 评论 0原文

使用 BCP 在存储过程中读写文件的最简单方法是什么?

What is the simplest way to read and write files in a sproc using BCP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百合的盛世恋 2024-10-14 10:29:38

要读取 T-SQL 中的文件,我建议使用 BULK INSERT< /code>语句,而不是与 bcp 混淆。它们使用相同的底层机制,但如果您已经在 T-SQL 存储过程中,最好不要跳到命令行领域。

不幸的是,据我所知,没有可以执行的 SQL 语句来写入文件。因此,您必须采取诸如 exec master..xp_cmdshell @cmd 之类的操作。您可以使用 bcposql 作为命令。如果您使用 bcp此页面有一个很好的教程,但为了总结一下,这里有一些示例代码:

-- make a pipe delimited file... requires access to xp_cmdshell and the file system
declare @cmd varchar(8000)
select @cmd = 'bcp mydb.dbo.tblWhatever out "c:\bcp\tblWhatever.txt" -c –t| -T -S' + @@servername
exec master..xp_cmdshell @cmd

For reading a file in T-SQL, I recommend using the BULK INSERT statement instead of messing with bcp. They use the same underlying mechanism, but if you're in a T-SQL stored proc already, it's best not to hop out into command line land.

Unfortunately, as far as I know, there's no SQL statement you can execute to write a file. So you'll have to resort to doing something like exec master..xp_cmdshell @cmd. You can use bcp or osql as your command. If you use bcp, this page has a nice tutorial, but just to summarize, here's some sample code:

-- make a pipe delimited file... requires access to xp_cmdshell and the file system
declare @cmd varchar(8000)
select @cmd = 'bcp mydb.dbo.tblWhatever out "c:\bcp\tblWhatever.txt" -c –t| -T -S' + @@servername
exec master..xp_cmdshell @cmd
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文