Ir al contenido

SQL Server Query

El modulo SQL Server Query permite ejecutar consultas SQL en bases de datos Microsoft SQL Server (MSSQL). Soporta variables dinámicas en la consulta y configuración de timeout personalizado. Utiliza la libreria mssql para la conexión con cifrado desactivado por defecto y certificados de servidor confiables. Es ideal para integraciones con sistemas empresariales que utilizan SQL Server como base de datos.

ParámetroTipoRequeridoDescripción
credentials_idcredentialsSiCredenciales de conexión a SQL Server
querycodeSiConsulta SQL a ejecutar (soporta variables {{variable}})
timeoutnumberNoTiempo máximo de espera en milisegundos (por defecto: 30000)

La credencial debe contener los campos:

  • host: Dirección del servidor SQL Server (campo server en la conexión)
  • user: Usuario de la base de datos
  • password: Contrasena del usuario
  • database: Nombre de la base de datos
  • port: Puerto de conexión (por defecto: 1433)
{
"nextModule": "siguiente_modulo",
"data": [
{ "id": 1, "nombre": "Ejemplo", "estado": "activo" }
]
}
{
"credentials_id": "cred_mssql_01",
"query": "SELECT TOP 100 * FROM dbo.Clientes WHERE Activo = 1",
"timeout": 30000
}

Cuando una variable {{campo}} contiene un valor de texto con comillas simples (p. ej. Monte Sant'Angelo), el motor escapa automáticamente el caracter ' duplicandolo ('') antes de insertarlo en la consulta. Esto es el estándar ANSI SQL y previene errores de sintaxis en SQL Server.

-- Dato de entrada: tienda = "Monte Sant'Angelo"
-- Plantilla en el nodo:
INSERT INTO [dbo].[Tiendas] (nombre) VALUES ('{{tienda}}')
-- SQL ejecutado (escape automatico):
INSERT INTO [dbo].[Tiendas] (nombre) VALUES ('Monte Sant''Angelo')

Importante: SQL Server no tiene la función QUOTE() (es exclusiva de MySQL). Usa simplemente '{{campo}}' y el motor se encarga del escape.

Los valores numericos no llevan comillas en la plantilla y no se escapan: usa {{precio}} sin comillas para columnas numericas.

  • Soporta variables dinámicas {{variable}} en la consulta SQL
  • Los valores de texto con comillas simples se escapan automáticamente (' → '') — no requiere tratamiento manual
  • El resultado se devuelve como result.recordset (array de objetos)
  • La conexión se configura con encrypt: false y trustServerCertificate: true por defecto
  • La conexión se cierra automáticamente al finalizar (bloque finally)
  • En caso de error SQL, se incluye la consulta ejecutada en el mensaje de error
  • El timeout es configurable y por defecto es de 30 segundos
  • sqlQuery (consultas en MySQL)
  • sqlQueryPostgres (consultas en PostgreSQL)
  • sqlQueryPostgresSSL (consultas en PostgreSQL con SSL)
  • sqlQueryOracle (consultas en Oracle)