Динамический SQL для выделенных пулов SQL в Azure Synapse Analytics

В эту статью включены советы по разработке решений с помощью динамического SQL в выделенных пулах SQL.

Пример динамического SQL

При разработке кода приложения для выделенных пулов SQL может понадобиться использовать динамический SQL, помогающий получать универсальные и гибкие модульные решения. На данный момент выделенные пулы SQL не поддерживают типы данных большого двоичного объекта.

Это может ограничивать размер строк, так как к двоичным относятся типы данных nvarchar(max) и varchar(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.

Дальнейшие действия

Дополнительные советы по разработке приведены в обзоре разработки.