Logo de QANode

Nodo SQL Server

El nodo SQL Server permite ejecutar consultas y operaciones en bases Microsoft SQL Server. Ofrece query builder visual para operaciones comunes y también permite escribir SQL customizado cuando se necesita control total.


Visión General

PropiedadValor
Tiposqlserver-query
CategoríaBase de Datos
Color🟢 Verde (#22c55e)
Entradain
Salidaout

Conexión

Usando Credenciales Guardadas (Recomendado)

Seleccione una credencial de tipo SQL Server en el campo Credencial. La credencial centraliza los datos de conexión y evita exponer la contraseña directamente en el nodo.

Configuración Manual

CampoTipoDescripción
HoststringDirección del servidor SQL Server
PuertonumberPuerto TCP (predeterminado: 1433)
Base de DatosstringNombre de la base
UsuariostringUsuario de conexión
ContraseñastringContraseña de conexión
EncryptbooleanUsa conexión cifrada
Trust Server CertificatebooleanAcepta el certificado del servidor sin validación completa

En ambientes corporativos, es común usar Encrypt habilitado. En ambientes internos con certificado propio o auto-firmado, Trust Server Certificate puede ser necesario.


Modos de Consulta

SQL Server soporta los mismos presets visuales que los otros nodos relacionales:

  • Custom SQL — SQL libre con expresiones {{ }};
  • SELECT — query builder visual;
  • EXISTS — verifica existencia de registro;
  • COUNT — cuenta registros;
  • ASSERT — valida valor en la base;
  • INSERT — inserta registros;
  • UPDATE — actualiza registros;
  • DELETE — elimina registros.

El query builder genera SQL compatible con SQL Server automáticamente.


Custom SQL

Use Custom SQL cuando necesite escribir la consulta manualmente.

CampoTipoDescripción
SQLstringConsulta SQL, con soporte para expresiones {{ }}

Usando Expresiones en SQL

En el panel actual del nodo SQL Server, la consulta customizada se escribe directamente en el campo SQL. Para usar valores dinámicos, escriba expresiones {{ }} dentro del propio SQL.

Ejemplo completo:

SELECT *
FROM dbo.Users
WHERE email = '{{ variables.EMAIL_TESTE }}'
  AND active = 1;

Si variables.EMAIL_TESTE es juan@ejemplo.com, el SQL ejecutado será equivalente a:

SELECT *
FROM dbo.Users
WHERE email = 'juan@ejemplo.com'
  AND active = 1;

Para valores de pasos anteriores, use la misma sintaxis:

SELECT *
FROM dbo.Users
WHERE id = {{ steps.api.outputs.json.id }};

Para textos, fechas y valores que deben tratarse como string en SQL, coloque comillas:

SELECT *
FROM dbo.Orders
WHERE customer_email = '{{ steps.api.outputs.json.email }}'
  AND created_at >= '{{ variables.FECHA_INICIAL }}';

Para números y flags, normalmente no use comillas:

SELECT *
FROM dbo.Users
WHERE id = {{ variables.USER_ID }}
  AND active = {{ variables.ACTIVE_FLAG }};

Cuidado: como la expresión se aplica directamente en el SQL, use valores controlados y revise las comillas en campos de texto. Evite usar contenido libre ingresado por usuarios finales sin validación.


SELECT Visual

En el preset SELECT, puede montar consultas sin escribir SQL manualmente.

CampoDescripción
TablaTabla de origen
ColumnasColumnas retornadas; vacío retorna todas
WhereCondiciones de filtro
Order ByOrdenación
LimitCantidad máxima de registros

En SQL Server, el límite se genera como TOP (...), no como LIMIT.

Ejemplo generado:

SELECT TOP (10) [id], [email], [active]
FROM [dbo].[Users]
WHERE [active] = 1;

Diferencias de SQL Server

TemaComportamiento
Puerto predeterminado1433
Límite de filasTOP (...)
IdentificadoresColumnas y tablas pueden generarse con corchetes, como [Users]
BooleanosEn muchas bases SQL Server, valores booleanos se tratan como 1 y 0 en columnas bit
TLS/certificadoPuede exigir Encrypt y Trust Server Certificate, según el ambiente

Outputs

OutputTipoDescripción
rowsarrayRegistros retornados por la consulta
rowCountnumberCantidad de filas retornadas en el primer recordset
recordsAffectedarrayFilas afectadas por comandos de escritura, cuando lo informa el driver

Accediendo a Outputs

{{ steps["sqlserver-query"].outputs.rows }}
{{ steps["sqlserver-query"].outputs.rows[0].email }}
{{ steps["sqlserver-query"].outputs.rowCount }}
{{ steps["sqlserver-query"].outputs.recordsAffected }}

Ejemplos

Validar Registro Creado por API

[HTTP Request: POST /users]
    │
    ▼
[SQL Server: SELECT * FROM dbo.Users WHERE email = '{{ steps["http-request"].outputs.json.email }}']
    │
    ▼
[If: {{ steps["sqlserver-query"].outputs.rowCount > 0 }}]

Preparar Datos de Prueba

INSERT INTO dbo.TestData ([key], [value])
VALUES ('pedido_test', '{{ variables.PEDIDO_ID }}');

Limpiar Datos de Prueba

DELETE FROM dbo.TestData
WHERE [key] = 'pedido_test';

Consejos

  • Use credenciales guardadas siempre que sea posible.
  • Pruebe la conexión antes de ejecutar el escenario.
  • Coloque comillas en expresiones que representan texto o fechas.
  • En ambientes con certificado interno, revise las opciones Encrypt y Trust Server Certificate.
  • Para consultas simples, prefiera el query builder visual; para joins, procedures o SQL avanzado, use Custom SQL.