Uso de Copilot en SQL Server Management Studio
SQL Server Management Studio (SSMS) admite dos asistentes de codificación con tecnología de IA que le ayudan a escribir, optimizar y solucionar problemas de código T-SQL . GitHub Copilot proporciona asistencia general de codificación en varios lenguajes, mientras que Copilot ofrece sugerencias específicas de la base de datos específicas de la instancia de SQL Server conectada.
Ambas herramientas usan modelos de lenguaje de gran tamaño para acelerar el desarrollo de bases de datos. GitHub Copilot destaca en la finalización del código y el reconocimiento de patrones en todo el código base, mientras que Copilot aprovecha el esquema de la base de datos, los índices y las estadísticas para proporcionar asistencia T-SQL contextualmente compatible.
Estos asistentes de inteligencia artificial hacen que el desarrollo de bases de datos sea más accesible y mejore la productividad de los desarrolladores nuevos y experimentados. Tanto si está escribiendo consultas, depurando código o optimizando el rendimiento, la asistencia con tecnología de inteligencia artificial le ayuda a centrarse en resolver problemas empresariales en lugar de recordar la sintaxis.
Uso de GitHub Copilot en SSMS
GitHub Copilot en SSMS lleva la finalización y generación de código con tecnología de IA al flujo de trabajo de desarrollo de bases de datos. Como asistente de codificación de uso general, GitHub Copilot le ayuda a escribir T-SQL más rápido al sugerir código a medida que escribe y genera consultas completas a partir de comentarios de lenguaje natural.
Descripción de las funcionalidades de GitHub Copilot
GitHub Copilot proporciona varias características para el desarrollo de SQL Server:
- Finalización de código insertado: sugerencias en tiempo real al escribir código T-SQL
- Lenguaje natural a código: Escribir comentarios que describan la intención, obtener consultas funcionales
- Sugerencias de varias líneas: Generar bloques de consulta completos, procedimientos o funciones
- Reconocimiento de patrones: Obtenga información sobre el estilo de codificación y los patrones comunes en el área de trabajo
- Consciente de contexto: Considera el código que has escrito en el archivo actual.
- Compatibilidad con varios idiomas: Funciona con T-SQL, PowerShell, Python y otros lenguajes usados en proyectos de base de datos
GitHub Copilot analiza el archivo actual, las pestañas abiertas y el área de trabajo para proporcionar sugerencias pertinentes. Aunque no se conecta directamente a la base de datos, reconoce patrones de sintaxis de T-SQL y prácticas comunes de desarrollo de bases de datos.
Habilitación de GitHub Copilot en SSMS
Para usar GitHub Copilot en SQL Server Management Studio:
- Asegúrese de que tiene instalado SSMS 19.3 o posterior
- Instalación de la extensión De Copilot de GitHub desde el menú Extensiones
- Inicie sesión con su cuenta de GitHub que tenga una suscripción activa de GitHub Copilot
- Configurar sus preferencias en Herramientas > Opciones > de GitHub Copilot
Nota:
GitHub Copilot requiere una suscripción de pago (individual, empresarial o empresarial). Algunas organizaciones proporcionan GitHub Copilot para sus desarrolladores como parte de su licencia de herramientas de desarrollo.
Escribir código con sugerencias en línea
GitHub Copilot proporciona sugerencias a medida que escribe:
-- Start typing a query
SELECT c.CustomerName,
-- Copilot suggests: c.Email, c.Phone, c.City
-- Press Tab to accept
-- Or write a comment describing what you need:
-- Get total sales by product category for last quarter
-- Copilot generates:
SELECT
p.Category,
SUM(od.Quantity * od.UnitPrice) AS TotalSales
FROM Products p
INNER JOIN OrderDetails od ON p.ProductID = od.ProductID
INNER JOIN Orders o ON od.OrderID = o.OrderID
WHERE o.OrderDate >= DATEADD(QUARTER, -1, GETDATE())
GROUP BY p.Category
ORDER BY TotalSales DESC;
El texto de fantasma gris muestra las sugerencias de Copilot. Presione Tab para aceptar o Esc para descartar.
Generación de procedimientos almacenados y funciones
Describir objetos de base de datos complejos en comentarios:
-- Create a stored procedure to calculate customer lifetime value
-- Parameters: @CustomerID int
-- Returns: @TotalValue money, @OrderCount int, @FirstOrderDate date, @LastOrderDate date
-- GitHub Copilot generates:
CREATE PROCEDURE sp_GetCustomerLifetimeValue
@CustomerID INT
AS
BEGIN
SELECT
@CustomerID AS CustomerID,
SUM(od.Quantity * od.UnitPrice) AS TotalValue,
COUNT(DISTINCT o.OrderID) AS OrderCount,
MIN(o.OrderDate) AS FirstOrderDate,
MAX(o.OrderDate) AS LastOrderDate
FROM Orders o
INNER JOIN OrderDetails od ON o.OrderID = od.OrderID
WHERE o.CustomerID = @CustomerID
GROUP BY o.CustomerID;
END;
GitHub Copilot comprende los patrones de procedimientos y genera código ejecutable completo.
Exploración del esquema de la base de datos
GitHub Copilot ayuda a escribir consultas para explorar la estructura de la base de datos:
-- Show all foreign key relationships for Orders table
-- Copilot suggests:
SELECT
fk.name AS ForeignKeyName,
OBJECT_NAME(fk.parent_object_id) AS TableName,
COL_NAME(fkc.parent_object_id, fkc.parent_column_id) AS ColumnName,
OBJECT_NAME(fk.referenced_object_id) AS ReferencedTable,
COL_NAME(fkc.referenced_object_id, fkc.referenced_column_id) AS ReferencedColumn
FROM sys.foreign_keys fk
INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
WHERE OBJECT_NAME(fk.parent_object_id) = 'Orders'
OR OBJECT_NAME(fk.referenced_object_id) = 'Orders';
Aprenda de sus patrones de codificación
GitHub Copilot se adapta a tu estilo a lo largo del tiempo. Si usa constantemente convenciones de nomenclatura, formato o patrones específicos, Copilot los incorpora en sugerencias:
-- If you typically write your queries like this:
SELECT
c.CustomerID
,c.CustomerName
,c.Email
FROM Customers AS c
WHERE c.IsActive = 1;
-- Copilot learns your style and suggests:
SELECT
o.OrderID
,o.OrderDate
,o.TotalAmount
FROM Orders AS o
WHERE o.Status = 'Completed';
Esta personalización hace que las sugerencias se sientan más naturales y reducen la necesidad de formato manual.
Aplicación de procedimientos recomendados de GitHub Copilot
Maximizar la eficacia de GitHub Copilot:
| Práctica | Description |
|---|---|
| Escribir comentarios descriptivos | Los comentarios claros y específicos generan mejores sugerencias de código |
| Uso de nombres significativos | Los nombres descriptivos de tabla y columna ayudan a Copilot a comprender el contexto |
| Desglosar tareas complejas | Escribir varios comentarios para procedimientos complejos en lugar de un bloque grande |
| Revisar todas las sugerencias | Validar siempre el código generado para la corrección y la seguridad |
| Proporcionar ejemplos | Incluir datos de ejemplo o salida esperada en los comentarios |
| Mantener el contexto cerca | Abrir archivos o esquemas relacionados para dar más contexto a Copilot |
| Revisar sugerencias continuamente | Si la primera sugerencia no es correcta, pruebe a modificar el comentario. |
Uso de Copilot en SSMS
Copilot en SSMS proporciona asistencia de inteligencia artificial compatible con la base de datos que se conecta directamente a la instancia de SQL Server. A diferencia de GitHub Copilot, Copilot tiene acceso al esquema de la base de datos, los índices, las estadísticas y los metadatos, lo que permite sugerencias de T-SQL más precisas contextualmente.
Descripción de las funcionalidades de Copilot
Copilot ofrece características específicas de la base de datos:
- Sugerencias compatibles con el esquema: Conoce las estructuras, columnas y tipos de datos exactos de la tabla
- Optimización de consultas: Analiza los planes de ejecución y sugiere mejoras en el rendimiento.
- Consultas de lenguaje natural: Convierte preguntas en T-SQL en función de la base de datos real.
- Explicar las consultas: Describe lo que hacen las consultas existentes en lenguaje sin formato
- Corrección de errores: Proporciona sugerencias contextuales cuando se produce un error en las consultas
- Recomendaciones de índice: Sugiere índices basados en las estadísticas de la base de datos.
Dado que Copilot se conecta a la base de datos, genera código que funciona con su esquema específico sin modificaciones.
Consulta con lenguaje natural
Formule preguntas sobre los datos mediante inglés sin formato:
-- Ask Copilot: "Show customers who placed more than 5 orders last month"
-- Copilot generates (using your actual schema):
SELECT
c.CustomerID,
c.CustomerName,
c.Email,
COUNT(o.OrderID) AS OrderCount
FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID
WHERE o.OrderDate >= DATEADD(MONTH, -1, GETDATE())
AND o.OrderDate < DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH, -1, GETDATE())))
GROUP BY c.CustomerID, c.CustomerName, c.Email
HAVING COUNT(o.OrderID) > 5
ORDER BY OrderCount DESC;
Copilot conoce los nombres exactos de las tablas y columnas, lo que garantiza que la consulta funciona inmediatamente.
Optimización del rendimiento de las consultas
Copilot analiza las consultas y sugiere mejoras:
-- Select a slow query and ask: "How can I make this faster?"
-- Original query:
SELECT c.CustomerName, SUM(od.Quantity * od.UnitPrice) AS Total
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID
LEFT JOIN OrderDetails od ON o.OrderID = od.OrderID
WHERE o.OrderDate >= '2024-01-01'
GROUP BY c.CustomerName;
-- Copilot suggests:
-- 1. Change LEFT JOIN to INNER JOIN (WHERE filters out NULLs anyway)
-- 2. Add covering index: CREATE INDEX IX_Orders_Date ON Orders(OrderDate, CustomerID, OrderID)
-- 3. Consider indexed view for frequent aggregations
-- Optimized query:
SELECT c.CustomerName, SUM(od.Quantity * od.UnitPrice) AS Total
FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN OrderDetails od ON o.OrderID = od.OrderID
WHERE o.OrderDate >= '2024-01-01'
GROUP BY c.CustomerName
OPTION (RECOMPILE);
Descripción y corrección de errores
Cuando se produce un error en las consultas, Copilot explica el problema y proporciona correcciones:
-- Query with error:
SELECT CustomerName, SUM(TotalAmount)
FROM Orders;
-- Error: Column 'Orders.CustomerName' is invalid in the select list
-- Ask Copilot: "What's wrong with this query?"
-- Copilot explains and fixes:
/*
The error occurs because CustomerName is not in an aggregate function or GROUP BY clause.
When using aggregate functions like SUM(), all non-aggregated columns must be grouped.
*/
-- Corrected query:
SELECT CustomerName, SUM(TotalAmount) AS Total
FROM Orders
GROUP BY CustomerName;
Elección de la herramienta correcta
Ambas herramientas ofrecen valor para el desarrollo de SQL Server:
| Característica | GitHub Copilot | Copilot |
|---|---|---|
| Reconocimiento del esquema de la base de datos | No | Sí |
| Compatibilidad con varios lenguajes | Sí | Enfoque de T-SQL |
| Optimización de las consultas | Basado en patrones | Específico de la base de datos |
| Funciona fuera de SSMS | Sí | No |
| Requiere conexión de base de datos | No | Sí |
| Subscription | GitHub Copilot | Copilot |
Use GitHub Copilot para el desarrollo general de T-SQL, los proyectos de varios lenguajes y la finalización de código en todo el código base. Use Copilot para tareas específicas de la base de datos en las que el reconocimiento de esquemas, la optimización de consultas y la interacción directa de la base de datos proporcionan mejores resultados.
Muchos desarrolladores usan: GitHub Copilot para codificación diaria y Copilot al trabajar con instancias de base de datos específicas. Juntos, estos asistentes de inteligencia artificial aceleran el desarrollo de bases de datos al tiempo que se mantienen los estándares de calidad y seguridad del código.