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


Динамический SQL в Synapse 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.

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

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