rlb*_*usa 1 sql-server bcp sqlcmd sql-server-2014
我正在尝试使用“Hello World”作为概念证明,sqlcmd但我很难:
命令:
sqlcmd 'cmd.exe'
Run Code Online (Sandbox Code Playgroud)
错误:
找不到存储过程“sqlcmd”。
我在 BCP 上遇到了类似的问题:
bcp "SELECT Col1,Col2,Col3 FROM MyDatabase.dbo.MyTable"
Run Code Online (Sandbox Code Playgroud)
找不到存储过程“bcp”。
这是一台 SQL Server 2014 机器。这是怎么回事,我该如何解决?
正如@marc_s已经指出的那样,SQLCMD并BCP为外部命令行工具。这些不能通过以SQL Server开头bcp ...或sqlcmd ...在 SQL Server 内部调用。
如果要从 SQL Server 运行这些命令,则需要在 a 中形成命令VARCHAR并通过使用master.sys.xp_cmdshell存储过程执行命令。调用此过程会将命令传递给操作系统执行。运行此命令将产生一个结果集,其中每一行都是运行此命令的输出的一行。
必须master.sys.xp_cmdshell首先启用对程序的访问。对于 SQL Server 安装,只需执行一次此操作。你可以使用这个脚本来做到这一点:
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
Run Code Online (Sandbox Code Playgroud)
之后就可以使用这个存储过程了。我将给出一个基于使用的例子BCP。这会将您的所有表信息(从INFORMATION_SCHEMA.TABLES)输出到C:\Temp\information_schema.txt。
DECLARE @stmt VARCHAR(8000);
SET @stmt='BCP "SELECT*FROM INFORMATION_SCHEMA.TABLES" QUERYOUT "C:\Temp\information_schema.txt" -c -T -S ' + @@SERVERNAME + ' -d ' + DB_NAME();
EXEC master.sys.xp_cmdshell @stmt;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3499 次 |
| 最近记录: |