Regina Prompt
Extensión de productividad SQL profesional y multimotor para Visual Studio Code.
Trabaja con SQL Server (MSSQL), PostgreSQL y MongoDB — con la familiaridad de SSMS, directo en tu editor.
Funcionalidades principales
| Función |
Detalle |
| Multimotor |
MSSQL, PostgreSQL y MongoDB |
| Explorador de objetos |
Bases de datos → Esquemas → Tablas / Vistas / SPs / Funciones / Colecciones |
| Ejecución de consultas |
F5, selección o documento completo |
| IntelliSense |
Autocompletado de tablas, columnas y objetos según el motor activo |
| Snippets SQL |
+15 snippets según el motor activo |
| Panel de resultados |
Pestañas por resultado, filtrado, copiar, exportar CSV |
| Pestañas con nombre |
Anotación #regina para nombrar cada pestaña |
| Generación de scripts |
SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE, CREATE |
| Historial de consultas |
Historial completo con conteo de filas y duración |
| Formatear SQL |
Menú contextual en el editor |
| Barra de estado |
Muestra el motor y base de datos activos |
| Credenciales cifradas |
Las contraseñas se guardan en SecretStorage de VS Code — nunca en texto plano |
Primeros pasos
- Instala la extensión desde el Marketplace.
- Abre el panel Regina Prompt desde la barra de actividad (icono de enchufe).
- Haz clic en Agregar conexión (ícono
+ en el título del explorador).
- Llena el formulario: motor, servidor, puerto, base de datos, usuario y contraseña.
- Haz clic en un nodo de base de datos para establecerlo como contexto de consulta activo.
- Abre un archivo SQL nuevo (
Ctrl+N en el explorador) y presiona F5 para ejecutar.
Gestión de conexiones
Agregar una conexión
Haz clic en el ícono + en el título del explorador o usa la paleta de comandos:
Regina: Add Connection
Se te pedirá:
- Motor — MSSQL, PostgreSQL o MongoDB
- Nombre — etiqueta amigable que aparece en el explorador
- Servidor — hostname o IP del servidor
- Puerto — por defecto 1433 (MSSQL), 5432 (PostgreSQL), 27017 (MongoDB)
- Base de datos — base de datos predeterminada
- Usuario
- Contraseña — se guarda cifrada en SecretStorage de VS Code
Editar / Eliminar / Desconectar
Haz clic derecho en cualquier nodo de conexión para ver estas opciones:
| Acción |
Descripción |
| Editar conexión |
Cambia cualquier campo (la contraseña se re-cifra) |
| Desconectar |
Cierra la conexión sin eliminarla |
| Eliminar conexión |
Borra la conexión permanentemente |
Explorador de objetos
El árbol del explorador muestra todos los objetos de cada servidor conectado:
🔌 Mi Servidor (MSSQL)
📁 MiBaseDatos
📂 dbo
📂 Tables
📋 clientes
📋 pedidos
📂 Views
👁 v_resumen_ventas
📂 Stored Procedures
⚙ sp_obtener_pedidos
📂 Functions
ƒ fn_calcular_impuesto
Clic en un nodo
Al hacer clic en una tabla, vista, procedimiento almacenado o función:
- Se establece el contexto de consulta activo (motor + base de datos mostrados en la barra de estado)
- Se abre un nuevo editor SQL con la definición del objeto
Filtrar objetos
Cada grupo (Tablas, Vistas, SPs, Funciones) tiene un botón de filtro.
Haz clic en el ícono de filtro para ingresar un término de búsqueda. Usa ; para buscar varios términos al mismo tiempo (lógica OR):
nomina;ciclo;plaza
Un filtro activo muestra una insignia en el nodo del grupo. Haz clic en × para limpiarlo.
Visor de dependencias
Haz clic derecho en un procedimiento almacenado, función o vista y selecciona Ver dependencias para ver todos los objetos que referencia.
Ejecución de consultas
Ejecutar una consulta
- F5 — ejecuta el documento SQL activo (o la selección actual)
- Botón Run (
▶) en la barra de título del editor — igual que F5
Si hay texto seleccionado, solo se ejecuta la selección.
Si no hay selección, se ejecuta el documento completo.
Ejecución según el motor
- MSSQL — antepone
USE [base_de_datos]; automáticamente para que puedas cambiar de base de datos en el explorador sin reescribir tus consultas.
- PostgreSQL — envía la opción
database en la conexión para que las consultas se ejecuten en la base de datos correcta.
- MongoDB — acepta sintaxis de shell MongoDB (ver sección MongoDB más abajo).
Ejecución de múltiples sentencias
Regina Prompt divide automáticamente un documento en sentencias individuales usando:
; (terminador SQL estándar)
GO (separador de lote MSSQL)
- Línea en blanco entre sentencias (los bloques con dollar-quote de PostgreSQL se manejan correctamente)
Cada sentencia se ejecuta como parte del mismo lote y los resultados se combinan en el panel.
Cancelar una consulta
- Shift+F5 o Ctrl+Break — cancela la consulta en ejecución
- Botón Stop (
◼) aparece en la barra de título del editor mientras se ejecuta una consulta
Panel de resultados
Después de ejecutar una consulta, los resultados aparecen en el panel Regina Prompt Results (se abre automáticamente).
Pestañas
Cada conjunto de resultados tiene su propia pestaña:
Resultados 1 (150) Resultados 2 (42) Mensajes
El número entre paréntesis es la cantidad de filas.
Filtrar filas
Escribe en el cuadro Filtrar filas... sobre la tabla de resultados para filtrar filas en tiempo real. El filtro coincide con cualquier columna.
Copiar datos
Haz clic derecho en una celda o selecciona varias celdas y elige:
| Opción |
Formato de salida |
| Copiar |
Valores separados por comas |
| Copiar como IN (...) |
('val1','val2','val3') — listo para usar en una cláusula IN de SQL |
| Copiar como LIKE |
col LIKE '%val%' — una condición LIKE por cada celda seleccionada |
Exportar a CSV
Haz clic en el botón Exportar CSV para descargar la pestaña actual como archivo .csv.
Visualización de JSON / JSONB
Las celdas que contienen JSON válido se muestran con resaltado de sintaxis e indentación formateada.
Pestañas con nombre en los resultados
Puedes asignar un título personalizado a cada pestaña de resultados usando la anotación #regina / #reginaend:
#regina
Ventas por región
#reginaend
SELECT region, SUM(total) FROM ventas GROUP BY region;
#regina
Clientes nuevos
#reginaend
SELECT * FROM clientes WHERE fecha_alta >= '2024-01-01';
Esto produce dos pestañas llamadas Ventas por región y Clientes nuevos en lugar de los nombres predeterminados "Resultados 1", "Resultados 2".
Reglas:
#regina y #reginaend deben estar cada uno en su propia línea.
- El título es la línea inmediatamente después de
#regina.
- Cualquier SQL antes del primer bloque
#regina se ejecuta como un bloque sin etiqueta.
Generación de scripts
Haz clic derecho en cualquier objeto del explorador para generar scripts SQL:
| Script |
Disponible en |
| SELECT TOP 1000 / LIMIT 1000 |
Tablas, Vistas |
| INSERT |
Tablas |
| UPDATE |
Tablas |
| DELETE |
Tablas |
| ALTER |
Procedimientos almacenados, Funciones, Vistas |
| Script as CREATE |
Procedimientos almacenados, Funciones, Vistas |
| EXECUTE / CALL |
Procedimientos almacenados |
Los scripts se abren en una nueva pestaña del editor SQL con el contexto de base de datos ya configurado.
IntelliSense
Regina Prompt ofrece autocompletado contextual en archivos SQL.
Completado de objetos
Al escribir un identificador, la extensión sugiere:
- Nombres de tablas y vistas (con prefijo de esquema)
- Nombres de columnas (cuando se conoce el contexto de la tabla)
- Nombres de procedimientos almacenados y funciones
Comillas según el motor
| Motor |
Comillas de identificadores |
| MSSQL |
[dbo].[nombre_tabla] |
| PostgreSQL |
"esquema"."nombre_tabla" |
Ir a definición
Presiona F12 sobre el nombre de una tabla o procedimiento almacenado para saltar a su definición (abre el SQL del objeto en un nuevo editor).
Snippets SQL
Los snippets son específicos para cada motor — obtienes diferentes completados según si tu conexión activa es MSSQL o PostgreSQL.
Snippets MSSQL
| Prefijo |
Se expande a |
ap |
ALTER PROCEDURE nombre |
af |
ALTER FUNCTION nombre |
av |
ALTER VIEW nombre |
cp |
Plantilla CREATE OR ALTER PROCEDURE |
cf |
Plantilla CREATE OR ALTER FUNCTION |
ct |
Plantilla CREATE TABLE |
cpt |
Plantilla CREATE TYPE ... AS TABLE |
tr |
Plantilla CREATE OR ALTER TRIGGER |
sf |
SELECT * FROM tabla |
sfs |
SELECT * FROM tabla WHERE id = valor |
ex |
EXEC esquema.procedimiento |
cte |
Plantilla de expresión de tabla común (CTE) |
ins |
Plantilla INSERT INTO ... VALUES |
upd |
Plantilla UPDATE ... SET ... WHERE |
del |
Plantilla DELETE FROM ... WHERE |
Snippets PostgreSQL
| Prefijo |
Se expande a |
ap |
Abre el selector Alter Object (busca procedimientos existentes) |
af |
Abre el selector Alter Object (busca funciones existentes) |
cp |
Plantilla CREATE OR REPLACE PROCEDURE |
cf |
Plantilla CREATE OR REPLACE FUNCTION |
ct |
Plantilla CREATE TABLE |
sf |
SELECT * FROM tabla |
sfs |
SELECT * FROM tabla WHERE id = $1 |
cte |
Plantilla de expresión de tabla común (CTE) |
ins |
Plantilla INSERT INTO ... VALUES |
upd |
Plantilla UPDATE ... SET ... WHERE |
del |
Plantilla DELETE FROM ... WHERE |
Alter Object (Abrir SP / Función / Vista existente)
Presiona Ctrl+Alt+R o usa el snippet ap / af (PostgreSQL) para abrir el selector Alter Object.
Muestra un QuickPick con búsqueda de todos los procedimientos y funciones en la base de datos actual — selecciona uno para abrirlo en el editor, listo para modificar.
Equivale al Modify de SSMS.
MongoDB
Cuando la conexión activa es MongoDB, el editor acepta la sintaxis de shell de MongoDB.
Comandos soportados
// Consultas
db.usuarios.find({ activo: true }, { nombre: 1, email: 1 })
db.pedidos.aggregate([
{ $match: { estado: "pendiente" } },
{ $group: { _id: "$usuarioId", total: { $sum: "$monto" } } },
{ $sort: { total: -1 } }
])
db.usuarios.findOne({ _id: ObjectId("...") })
db.usuarios.countDocuments({ edad: { $gt: 18 } })
db.productos.distinct("categoria")
// Escritura
db.usuarios.insertOne({ nombre: "Juan", email: "juan@test.com" })
db.usuarios.updateMany({ activo: false }, { $set: { archivado: true } })
db.logs.deleteMany({ fecha: { $lt: ISODate("2024-01-01") } })
// Administración
show databases
show collections
db.runCommand({ ping: 1 })
db.usuarios.getIndexes()
db.usuarios.createIndex({ email: 1 }, { unique: true })
Tipos especiales soportados
ObjectId(...), ISODate(...), NumberInt(...), NumberLong(...), Timestamp(...), MinKey(), MaxKey()
Explorador MongoDB
El árbol muestra Bases de datos → Collections → nombre_colección. Al hacer clic en una colección se abre su esquema de validación (si existe) o un documento de muestra.
Historial de consultas
Haz clic en la pestaña Historial en el panel de resultados para navegar por consultas ejecutadas anteriormente.
Cada entrada muestra:
- Texto de la consulta (truncado)
- Base de datos y nombre de la conexión
- Hora de ejecución y duración
- Cantidad de filas devueltas
Haz clic en cualquier entrada para volver a ejecutarla inmediatamente.
Haz clic derecho en cualquier parte de un editor SQL y elige Regina: Format SQL para autoformatear el documento.
El formateo usa la librería poor-mans-t-sql-formatter y respeta la configuración de indentación del documento.
Barra de estado
La barra de estado (parte inferior derecha) muestra el motor y la base de datos activos:
⚡ PostgreSQL · NameDB
Se actualiza automáticamente al hacer clic en un nodo diferente del explorador.
Haz clic en el elemento de la barra de estado para ver el nombre completo de la conexión en el tooltip.
Atajos de teclado
| Atajo |
Acción |
F5 |
Ejecutar consulta (el editor SQL debe estar activo) |
Shift+F5 |
Cancelar consulta en ejecución |
Ctrl+Break |
Cancelar consulta en ejecución |
Ctrl+Alt+R |
Abrir selector Alter Object |
Ctrl+N (en explorador) |
Nueva consulta |
F12 |
Ir a definición (tabla / SP bajo el cursor) |
Configuración
Abre Configuración → busca Regina para configurar:
| Opción |
Por defecto |
Descripción |
regina.maxRows |
0 |
Máximo de filas devueltas por consulta. 0 = sin límite. Establece un número positivo (ej. 5000) para protegerte de consultas accidentales sobre tablas muy grandes. |
Seguridad
Todas las contraseñas se almacenan usando la API SecretStorage de VS Code (respaldada por el llavero / almacén de credenciales del sistema operativo).
Las contraseñas nunca se escriben en disco en texto plano, ni en archivos de configuración, ni en la configuración del workspace.
Requisitos
- Visual Studio Code 1.85 o posterior
- Acceso de red al servidor SQL Server, PostgreSQL o MongoDB
- Para MSSQL: SQL Server 2012 o posterior (cualquier edición, incluido Express y Azure SQL)
- Para PostgreSQL: PostgreSQL 10 o posterior
- Para MongoDB: MongoDB 4.4 o posterior
Limitaciones conocidas
- El soporte para MySQL y SQLite está planificado para una versión futura.
- El panel de resultados es de solo lectura — la edición de datos en la grilla no está soportada aún.
- Conjuntos de resultados muy grandes (+100 000 filas) pueden ser lentos de renderizar; usa
regina.maxRows para limitar los resultados.
Licencia
MIT — consulta LICENSE para más detalles.
Comentarios y reportes de errores
¿Encontraste un bug o tienes una solicitud de función?
Abre un issue en gitlab.com/escupiendocodigo/regina-prompt/-/issues
o escribe a spittingcode@gmail.com.