Synapse SQL 中的动态 SQL

本文将介绍使用动态 SQL 的技巧,以及使用 Synapse 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 验证规则的约束。

后续步骤

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