我有一个文本文件位于客户端计算机上并希望将其移动到数据库服务器(MS SQL 2008),但除了通过SQL Server客户端之外,我没有任何访问服务器的权限。我可以使用SQL客户端连接将此文件传输到服务器吗?
答案 0 :(得分:2)
是的,你可以这样做,但不是通过标准的SQL。您必须编写一个扩展存储过程,它将使您通过sql客户端连接进行连接并访问服务器文件系统。但是你必须解决很多用户权限问题。
答案 1 :(得分:0)
您想将它放在数据库中还是文件系统中?如果是前者,请考虑text或varchar(max)。
如果是后者,请根据需要使用SQL注入和xp_cmdshell。 :)实际上,在这种情况下,您应该要求管理员提供更合适的传输机制。
答案 2 :(得分:0)
如果您想将文件保存到数据库中,那就不用了。
如果要保存到文件系统中,请使用标记为具有EXTERNAL_ACCESS的CLR存储过程。您可以将BLOB参数传递给过程,然后该过程可以使用普通的FileStream操作将BLOB内容写入磁盘。如果文件非常大,则需要特别小心以防止内存膨胀。