通过 SQL Server 连接传输文件

发布于 2024-09-01 21:22:43 字数 111 浏览 2 评论 0 原文

我在客户端计算机上有一个文本文件,想要将其移动到数据库服务器(MS SQL 2008),但除了通过 SQL Server 客户端之外,我无法访问该服务器。我可以使用 SQL 客户端连接将此文件传输到服务器吗?

I have a text file sitting on client machine and want to move it to the database server (MS SQL 2008) but I don't have any access to the server except through the SQL Server client. Can I transfer this file to the server using SQL client connection?

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

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

发布评论

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

评论(3

断念 2024-09-08 21:22:43

是的,您可以做到这一点,但不能通过标准 SQL。您必须编写一个扩展存储过程,该过程允许您通过 sql 客户端连接并访问服务器文件系统。但您必须解决许多用户权限问题。

Yes you can do it but not through standard SQL. You will have to write an extended stored procedure that will alow you to connect through sql client connection and to access server file system. But you will have to address a lot of user privileges issues.

撩动你心 2024-09-08 21:22:43

您想将其放入数据库还是文件系统中?如果是前者,请考虑 文本varchar(max)

如果是后者,请使用 SQL 注入和 xp_cmdshell 根据需要。 :) 实际上,在这种情况下,您应该向管理员询问更合适的传输机制。

Do you want to put it in the database, or in the filesystem? If the former, consider a text or varchar(max).

If the latter, use SQL injection and xp_cmdshell as needed. :) Actually, in this case you should ask the admin for a more appropriate transfer mechanism.

大姐,你呐 2024-09-08 21:22:43

如果您想将文件保存到数据库中,那么这是理所当然的。

如果要保存到文件系统中,请使用标记为具有 EXTERNAL_ACCESS 的 CLR 存储过程。您可以将 BLOB 参数传递给该过程,然后该过程可以使用普通的 FileStream 操作。如果文件非常大,则需要特别小心以防止内存膨胀。

If you want to save the file into the database then is a no brainer.

If you want to save into the file system the use a CLR stored procedure marked as having EXTERNAL_ACCESS. You can pass a BLOB parameter to the procedure and the procedure in turn can write the BLOB content to the disk, using ordinary FileStream operations. If the file is very large then special care needs to be taken to prevent memory bloat.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文