SQL Server:动态查询和字符串分隔符

时间:2017-10-31 08:56:31

标签: sql sql-server dynamic bcp

我正在寻找何时使用字符串分隔符进行动态查询的提示。在我的例子中,我正在为bcp实用程序创建一个动态查询。

使用基本查询我管理它以使其工作但随着查询变得更复杂,动态查询/ bcp不起作用。

例如,我有以下查询正常工作:

SELECT @bcp = 'bcp "select COUNT(''Id'') as NumberOfIds from [kat].[dbo].[DataId] union all select  null" queryout "D:\Testing\Test.csv" -T -c -t;'

然而,当我添加更多行时,我不能再使它工作了。以下查询无效:

SELECT @bcp = 'bcp "SELECT
  ("select  COUNT(''Id'')  FROM  [kat].[dbo].[DataId] )", 
  ("select COUNT( ''Name'')  FROM  [kat].[dbo].[Person])",
  ("select COUNT(''Surname'')  FROM  [kat].[dbo].[FamilyName]")" queryout "D:\Testing\Test.csv" -T -c -t;'

非常感谢,

1 个答案:

答案 0 :(得分:1)

您的查询应该是一行的。多行查询不接受。

SELECT @bcp = 'bcp "SELECT ("select  COUNT(''Id'')  FROM  [kat].[dbo].[DataId] )", ("select COUNT( ''Name'')  FROM  [kat].[dbo].[Person])", ("select COUNT(''Surname'')  FROM  [kat].[dbo].[FamilyName]")" queryout "D:\Testing\Test.csv" -T -c -t;'