SQL 服务器:动态查询和字符串分隔符

SQL Server : Dynamic Queries and String Separator

我正在寻找何时使用字符串分隔符进行动态查询的提示。在我的例子中,我正在为 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;'

非常感谢,

您的查询应该在单行中。不接受多行查询。

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;'