【发布时间】:2019-06-04 16:04:24
【问题描述】:
我有一台带有 sql 数据库和 manager studio 的服务器和另一台服务器,我想从中执行 bcp 命令。我可以使用(可能是.bat 文件)在同一台服务器上生成.txt 文件吗?或者有人有其他建议吗?这是给一个对BD一无所知并且想随时执行的人,所以我没有使用预定的工作。
我尝试了以下方法,它在第二台服务器上不起作用,但在第一台服务器上显示了预期的结果。
DECLARE @SQL VARCHAR(255), @bcpc VARCHAR(8000)
SET @SQL = 'select * from BaseDatos.dbo.tabla'
SET @bcpc = 'bcp "' + @SQL + '" queryout'
SET @bcpc = @bcpc + ' c:\test\archivo.txt -c -t"|" -Usa -P'
EXEC master..xp_cmdshell @bcpc
print @bcpc
【问题讨论】:
-
附带说明,如果可以,请避免使用 xp_cmdshell。它引入了安全风险。如果对 xp_cmdshell 的访问不受限制(应该完全禁用),任何可以执行的人都将作为用于运行 SQL Server 服务的帐户执行其操作系统命令。现在是转移到 SSIS 包以处理数据库解决方案中任何需要的操作系统命令的好时机。仅供参考。
-
@jamie 谢谢,我去看看
标签: sql sql-server bcp