2016-02-03 3 views
0

Я использую тонны динамического SQL - Я понял, что для поддержки динамических SQL-запросов необходимы некоторые хорошие рекомендации, фреймворки и/или инструменты. Я ищу любые предложения о том, как точно составить динамический SQL-запрос (без очевидного решения просто написать его, а затем добавить «ect»).хорошая практика с динамическим sql

Большая проблема здесь в том, что иногда она получает путь к беспорядочному (динамический sql, который содержит другой динамический SQL-элемент).

Если это имеет значение, я использую sql-сервер.

Я возьму любой совет, который я могу получить, Спасибо! ;)

+0

Любой запрос отличается от другого, поэтому его трудно ответить так. Было бы здорово, если бы вы действительно задали конкретный вопрос. – sagi

+0

. Эрланд Соммарског. Очень хорошая статья [Проклятие и благословения динамического SQL] (http://www.sommarskog.se/dynamic_sql.html). В нем есть раздел «Хорошие правила кодирования и советы для динамического SQL». –

ответ

0

Vague вопрос .. Но один совет:

Использование sp_executesql и передать в любых переменных/параметров всякий раз, когда это возможно, чтобы предотвратить инъекции SQL

0

Если возможно генерировать динамический SQL как можно больше, не пишите сами.

Выполнение динамического SQL без добавления параметров к строке SQL, использование параметров и их передача в sp_executesql, чтобы избежать двойного цитирования (слишком утомительно). Это также надежная защита от SQL Injection. Пример:

DECLARE @stmt NVARCHAR(MAX)='SELECT * FROM your_table WHERE [email protected] AND ... AND [email protected];'; 
EXECUTE sp_executesql @stmt, N'@par1 INT, ..., @parn VARCHAR(256)', @par1, ... , @parn; 
Смежные вопросы