Cuando empecé a entrar en Structured Query Language (SQL) alrededor de 2014, recuerdo buscar ejemplos en internet. Me gustaría ver a la gente decir cosas como,» esto utiliza SQL dinámico «o» ese script es dinámico.»Aunque vi los ejemplos, realmente no entendía los componentes que lo hacían «dinámico» porque era nuevo. A medida que gané más experiencia en el campo, no solo aprendí los tres componentes que componen dynamic SQL, sino también cómo aplicarlo a varios casos de uso., Esta Breve introducción está diseñada para ayudar a los principiantes de SQL, o a cualquier otra persona, a comprender mejor los componentes de SQL dinámico.
datos para Ejemplos
Estoy utilizando los datos de operaciones del mercado de opciones disponibles en Kaggle si está interesado.
¿qué es Dynamic SQL?
aunque su aplicación puede complicarse, la definición de dynamic SQL es realmente simple:
Dynamic SQL es una instrucción SQL que se construye en tiempo de ejecución.
esto le permite construir una consulta de propósito general y construir la instrucción que necesita ejecutar sobre la marcha a través del uso de variables., Voy a deconstruir este ejemplo de SQL dinámico súper básico a continuación:
DECLARE @dynamic_sql NVARCHAR(max)select @dynamic_sql = 'select * from orderFlow'EXEC(@dynamic_sql)
lo contrario de un SQL dinámico es SQL estático que es una instrucción SQL que no cambia en tiempo de ejecución. Por ejemplo:
SELECT * FROM orderFlow
¿nota la diferencia? El SQL estático no se ejecuta usando un comando execute ni se construye usando variables.
tres pasos para escribir SQL dinámico
Si desea escribir SQL dinámico, recuerde los tres componentes:
- declarar Variables
piense en usar las variables como bloques de construcción para la instrucción SQL., En el ejemplo, declaré una variable llamada dynamic_sql y le di el tipo de datos nvarchar (max). Uso max para darme la mayor cantidad de espacio para ingresar una sentencia SQL.
DECLARE @dynamic_sql NVARCHAR(max)
2. Construir cadena SQL
El hecho de que pueda introducir cualquier SQL que desee en la variable dynamic_sql es parte de lo que hace que este ejemplo SQL dinámico en primer lugar! Como quiero devolver todos los resultados de la tabla, orderFlow, establezco la variable en una instrucción select simple que se puede ejecutar sin error.
select @dynamic_sql = 'select * from orderFlow '
3., Ejecutar sentencia SQL
La sentencia que se creó en el paso dos debe ejecutarse. El comando EXEC se usa típicamente para ejecutar procedimientos almacenados, pero puede ejecutar cualquier instrucción SQL legítima almacenada como una cadena, como la almacenada en la variable dynamic_sql.
EXEC(@dynamic_sql)
Imagine trabajar con una interfaz de usuario que tiene un campo de texto que permite al usuario ingresar una instrucción SQL sin procesar y luego ejecutar esa instrucción cuando un usuario hace clic en Ejecutar. ¡He utilizado funcionalidades similares en productos de inteligencia de negocios!, Ahora que usted sabe algo de SQL dinámico, es fácil imaginar cómo podría estar trabajando detrás de las escenas.
¡Felicidades! Ahora conoce los 3 componentes de dynamic SQL!, ejemplos:
Imagine que está creando una interfaz de usuario que permite a los usuarios interactuar con los datos, pero en lugar de dejarles escribir SQL puro, les permite construir una instrucción utilizando 2 listas desplegables: