Azure Synapse Analytics 中专用 SQL 池的动态 SQL

本文提供了在专用 SQL 池中使用动态 SQL 开发解决方案的技巧。

动态 SQL 示例

针对专用 SQL 池开发应用程序代码时,可能需要借助动态 SQL 来提供灵活、通用且模块化的解决方案。 专用 SQL 池目前不支持 blob 数据类型。

不支持 blob 数据类型可能会限制字符串的大小,因为 blob 数据类型包括 varchar(max) 和 nvarchar(max) 类型。

如果已在应用程序代码中使用这些类型构建大型字符串,则需将代码分解成区块,并改用 EXEC 语句。

一个简单的示例:

DECLARE @sql_fragment1 VARCHAR(8000)=' SELECT name '
,       @sql_fragment2 VARCHAR(8000)=' FROM sys.system_views '
,       @sql_fragment3 VARCHAR(8000)=' WHERE name like ''%table%''';

EXEC( @sql_fragment1 + @sql_fragment2 + @sql_fragment3);

如果字符串较短,则可以像平时一样使用 sp_executesql

备注

作为动态 SQL 执行的语句仍会受所有 T-SQL 验证规则的约束。

后续步骤

有关更多开发技巧,请参阅 开发概述