bcp实用程序的问题

时间:2017-07-07 10:36:44

标签: sql sql-server

我想用bcp实用程序提取SELCET查询。但它不起作用。 MS SQL强调" bcp"标志着它。

DECLARE @DBName NVARCHAR(MAX);
SET @DBName = (SELECT name FROM master.dbo.sysdatabases where name LIKE '%NAV%');
EXECUTE ('USE [' + @DBName+']');

PRINT (' DATABASE SELECTED: '+ @DBName)

bcp "SELECT [Role ID],[Name] FROM [dbo].[Permission Set]" out "C:\Users\Public\Documents\test.txt" -c -T

错误消息是:

Msg 102, Level 15, State 1, Line 19
Incorrect syntax near 'bcp'.

有人知道正确的语法吗?如果我将它与docs.microsoft网站(https://docs.microsoft.com/en-us/sql/tools/bcp-utility#o)上的示例进行比较,我不会看到我的错误。

2 个答案:

答案 0 :(得分:1)

您需要使用xp_cmdshell过程在T-SQL脚本中执行bcp命令

Declare @sql varchar(8000)
Select @sql = 'bcp "SELECT [Role ID],[Name] FROM [dbo].[Permission Set]" out "C:\Users\Public\Documents\test.txt" -c -T'
Exec master..xp_cmdshell @sql

答案 1 :(得分:1)

bcp命令行实用程序。它从shell脚本(通常)运行,而不是从T-SQL运行。

在SQL代码中,通常使用bulk insert。请参阅文档here

相关问题