SQL Server:BCP查询失败

时间:2018-04-03 18:49:03

标签: sql-server

此代码效果很好

USE BellariaNetAssets
DECLARE @printFile VARCHAR(1000)
SELECT ip FROM fnMuninCfg()  

但是这段代码失败了:

USE BellariaNetAssets
DECLARE @printFile VARCHAR(1000)
SET @printFile = 'BCP "SELECT ip FROM fnMuninCfg()" queryout "C:\users\aag\desktop\munin' 
+ '.cfg" -c -T -t "|" '
EXEC xp_cmdshell @printFile

错误是:

  

错误= [Microsoft] [SQL Server的ODBC驱动程序13] [SQL Server]无效的对象名称' fnMuninCfg'。
  错误= [Microsoft] [SQL Server的ODBC驱动程序13]无法解析列级排序规则
  BCP复制失败

一个好的灵魂可以向我解释为什么BCP确认对象名称无效?该功能似乎没问题(代码#1)。

1 个答案:

答案 0 :(得分:2)

尝试完全限定函数名称(例如Adventureworks.dbo.fnMuninCfg())

我的猜测是,当你调用它时,我相信xp_cmdshell在master db的上下文中运行,所以当你调用一个非限定函数时,它默认在master db中查找你的函数。让我知道它是否有效!