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