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 验证规则的约束。

后续步骤

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