Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, aprenderá cómo GitHub Copilot ayuda a los desarrolladores a diseñar, comprender y evolucionar esquemas de base de datos con sugerencias basadas en contexto. Tanto si estás creando desde cero o haciendo ingeniería inversa de tablas existentes, GitHub Copilot simplifica el proceso tanto en SQL como en marcos de mapeo relacional de objetos (ORM), haciendo que el trabajo con esquemas sea más rápido, inteligente y fácil de mantener.
En esta sección se tratan la creación de nuevos esquemas desde cero y el trabajo con bases de datos existentes. Puede usar GitHub Copilot para generar definiciones de esquemas orientadas a código, actualizar objetos, o realizar reingeniería inversa y explorar las bases de datos existentes.
Creación de esquemas
Creación de un esquema básico
Write a SQL script to create a new schema named `blog` for a blog application. The schema should include three tables: `Posts`, `Comments`, and `Users`. Each table must have appropriate primary keys, and the necessary foreign key relationships and constraints should be defined.
Modificar esquema
Add a new column named `LastModified` of type `datetime` to the `Posts` table in the `blog` schema. Generate the updated SQL script reflecting this change, including the full definition of the modified schema.
It isn't needed to create the schema, but it would be great if you could use the script generated and run it to validate the accuracy of the generated code. The following section continues using this new schema called `blog`.
Creación de un esquema con relaciones y restricciones
Generate a Prisma schema for a blog application using my current database. The schema should define a new database schema named `blog` and include tables for `posts`, `authors`, and `comments`, with appropriate relationships and constraints.
Creación de un script de migración para agregar una columna
Generate a Prisma migration to add a column called `LastModified` (`datetime`) to the `Post` table.
Ingeniería inversa de una base de datos existente
Reverse engineer the current database and generate `CREATE TABLE` statements for all tables in the `SalesLT` schema.
Resumen de una estructura de tabla
Summarize the structure of the `SalesLT.Product` table in natural language.
Generación de un modelo de Python
Generate a `models.py` (Django) file that reflects the structure of the `SalesLT.Customer` table.
Generación de modelos y contexto de Entity Framework Core
Generate an Entity Framework Core DbContext and model classes for the `SalesLT` schema.
Creación de asociaciones y definiciones de modelos
Create a Sequelize model definition for the `SalesLT.Product` and `SalesLT.Category` tables with appropriate associations.
Generación de una entidad a partir de una tabla
Generate a TypeORM entity for the `SalesLT.Customer` table, including primary key and indexed fields.
Generación de un script de migración para crear una nueva tabla
Generate a `knex.js` migration script to create the `SalesLT.SalesOrderHeader` table with `OrderDate`, `CustomerID`, and `TotalDue` columns.
Definir relaciones
Definición de un script relacional con referencias de clave externa
Write SQL to define a one-to-many relationship between `Users` and `Posts` in the `blog` schema. Ensure the foreign key in `Posts` references `Users(UserId)`.
Adición de una tabla a un esquema con referencias de clave externa
Add a `Categories` table to the `blog` schema and update the `Posts` table to include a nullable foreign key referencing `Categories(CategoryId)`.
Actualización de una base de datos para agregar una tabla y actualizar columnas
Write SQL to update the `Users` table to include a `RoleId` column and create a new `Roles` table. Define a foreign key relationship and enforce that every user must have a role.
Identificación de relaciones de clave externa para una tabla
Identify and describe all foreign key relationships that involve the `SalesLT.SalesOrderHeader` table.
Reemplazar una clave foránea por una relación de muchos a muchos
Write a SQL script that removes a foreign key between `Posts` and `Categories` in the `blog` schema and replaces it with a many-to-many relationship using a new join table.
Generar mapeo entre dos tablas
Write Prisma relation mappings between `Customer`, `SalesOrderHeader`, and `SalesOrderDetail`.
Actualización de un modelo de datos
Update a Sequelize model to include a `hasMany` and `belongsTo` relationship between `Customer` and `Order`.
Validación de esquema
Sugerir restricciones para datos confidenciales
Suggest constraints for a table storing user passwords (for example, special characters and length limits).
Validación de restricciones de tipo de datos
Confirm that the `Name` column in `SalesLT.ProductCategory` doesn't use `nvarchar(max)` and has a reasonable maximum length constraint.
Validación de restricciones de clave principal
Check whether the `SalesLT.Address` table has a primary key and all required fields defined.
Validación de registros de auditoría para tablas
Generate a SQL script to validate that all tables in the `SalesLT` schema include a `CreatedDate` or `ModifiedDate` column.
Definición de un modelo e inclusión de la lógica de validación
Define a SQLAlchemy model for the `Customer` table and include validation logic using Pydantic or custom Python validators before inserting into the database.
Adición de anotaciones de datos para la validación de formato
Add data annotations in an Entity Framework model to ensure fields like `Email` and `PhoneNumber` follow specific formats.
Compartir la experiencia
Para ayudarnos a refinar y mejorar GitHub Copilot para la extensión MSSQL, use la siguiente plantilla de problema de GitHub para enviar sus comentarios: Comentarios de GitHub Copilot
Al enviar comentarios, considere la posibilidad de incluir:
Escenarios probados : háganos saber en qué áreas se ha centrado, por ejemplo, la creación de esquemas, la generación de consultas, la seguridad, la localización.
Lo que funcionó bien : describa cualquier experiencia que se sintiera suave, útil o superara sus expectativas.
Problemas o errores : incluya cualquier problema, incoherencias o comportamientos confusos. Las capturas de pantalla o las grabaciones de pantalla son especialmente útiles.
Sugerencias para mejorar : comparta ideas para mejorar la facilidad de uso, expandir la cobertura o mejorar las respuestas de GitHub Copilot.
Contenido relacionado
- Extensión de GitHub Copilot para MSSQL de Visual Studio Code
- Inicio rápido: Uso de sugerencias en línea y chat de GitHub Copilot
- Inicio rápido: Generación de código
- Inicio rápido: Uso del generador de consultas inteligentes
- Inicio rápido: Asistente del optimizador de consultas
- Inicio rápido: Uso del explicador de lógica de negocios
- Inicio rápido: Analizador de seguridad
- Inicio rápido: Asistente de localización y formato
- Inicio rápido: Generación de datos para pruebas y simulación
- Limitaciones y problemas conocidos