我想用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)上的示例进行比较,我不会看到我的错误。
答案 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。