Поделиться через


Динамический SQL в Synapse SQL

В этой статье вы найдете рекомендации по использованию динамического SQL и разработке решений с помощью Synapse 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.

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

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