¿Cómo consultar la estructura de las tablas en la base de datos? Por ejemplo, ¿qué tipo es un campo, cuál es su longitud y cuáles son sus restricciones?
Utilice el comando SQL para ver la estructura de la tabla
Puede utilizar el procedimiento almacenado integrado sp_MShelpcolumns.
Por ejemplo, la estructura de la tabla de consulta Tabel1:
sp_MShelpcolumns 'Tabel1'
Introducción a los metadatos
Metadatos (metadatos) El más común Definido como "datos estructurados sobre datos", o simplemente "información sobre datos", las leyendas, las tarjetas de catálogo de bibliotecas y las tarjetas de visita de la vida diaria pueden considerarse metadatos. En un sistema de gestión de bases de datos relacionales (DBMS), los metadatos describen la estructura y el significado de los datos. Por ejemplo, al administrar y mantener SQL Server o desarrollar aplicaciones de bases de datos, a menudo necesitamos obtener información relacionada con la arquitectura de la base de datos:
El número y los nombres de las tablas y vistas en una base de datos;
El número de columnas en una tabla o vista y el nombre, tipo de datos, longitud, precisión, descripción, etc. de cada columna;
Restricciones definidas en una tabla;
Índices e información de clave primaria/clave externa definida en una tabla.
A continuación presentaremos varios métodos para obtener metadatos.
Obtener metadatos
Utilizar procedimientos almacenados del sistema y funciones del sistema para acceder a los metadatos
La forma más común de obtener metadatos es utilizar los procedimientos almacenados del sistema proporcionados por SQL. Funciones del servidor y del sistema.
Los procedimientos almacenados del sistema y las funciones del sistema proporcionan una capa de abstracción entre las tablas del sistema y los metadatos, lo que nos permite obtener los metadatos del objeto de la base de datos actual sin consultar directamente las tablas del sistema.
Los procedimientos almacenados del sistema comúnmente utilizados relacionados con los metadatos incluyen los siguientes:
Descripción del procedimiento almacenado del sistema
sp_columns devuelve información detallada sobre las columnas de la tabla o vista especificada .
sp_databases devuelve información básica sobre todas las bases de datos en el servidor actual.
sp_fkeys Si el parámetro es una tabla con una clave primaria, entonces se devuelven todas las tablas que contienen claves externas que apuntan a la tabla; si el parámetro es un nombre de tabla con una clave externa, todas las tablas con la misma clave primaria; Se devuelven clave/clave externa. Relaciones con todas las tablas asociadas con esta clave externa.
sp_pkeys devuelve la información de la clave principal de la tabla especificada.
sp_server_info devuelve varias características del servidor actual y sus valores correspondientes.
sp_sproc_columns devuelve información sobre los parámetros de entrada y salida del procedimiento almacenado especificado.
sp_statistics devuelve toda la información estadística y de índice en la tabla o vista indexada especificada.
sp_stored_procedures devuelve la lista de procedimientos almacenados de la base de datos actual, incluidos los procedimientos almacenados del sistema.
sp_tables devuelve todas las tablas y vistas de la base de datos actual, incluidas las tablas del sistema.
Las funciones del sistema comúnmente utilizadas relacionadas con los metadatos incluyen las siguientes:
Descripción de la función del sistema
COLUMNPROPERTY devuelve información sobre columnas o parámetros de proceso, como si está permitido Valor nulo, ya sea una columna calculada, etc.
COL_LENGTH devuelve el valor del atributo especificado de la base de datos especificada, como si está en modo de solo lectura, etc.
DATABASEPROPERTYEX devuelve la configuración actual de la opción o propiedad especificada para la base de datos especificada, como el estado de la base de datos, el modelo de recuperación, etc.
OBJECT_ID devuelve el número de identificación del nombre del objeto de base de datos especificado.
OBJECT_NAME devuelve el nombre de objeto del número de identificación del objeto de base de datos especificado.
OBJECTPROPERTY devuelve información sobre el número de identificación del objeto de base de datos especificado, como si es una tabla, si es una restricción, etc.
fn_listextendedproperty devuelve el valor de la propiedad extendida del objeto de la base de datos, como la descripción del objeto, las reglas de formato, la máscara de entrada, etc.
Dado que no podemos usar directamente los resultados devueltos de los procedimientos y funciones almacenados, usaremos los procedimientos almacenados del sistema y el sistema solo cuando solo nos importen los resultados de la consulta y no necesitemos usarlos más. función para consultar metadatos.
Por ejemplo, si queremos obtener información básica sobre todas las bases de datos del servidor actual, podemos ejecutarlo en el analizador de consultas:
EXEC sp_databases
IR
En los resultados devueltos, podemos ver el nombre, tamaño, comentarios y otra información de la base de datos.
SQL Server tiene muchas tablas del sistema, entre las cuales las tablas más utilizadas relacionadas con la consulta de metadatos son las siguientes:
Descripción de la tabla del sistema
las columnas del sistema almacenan cada información sobre cada columna en tablas y vistas y sobre cada parámetro en un procedimiento almacenado.
syscomments almacena las declaraciones de texto SQL sin formato que contienen cada vista, regla, valor predeterminado, activador, restricción CHECK, restricción DEFAULT y procedimiento almacenado.
sysconstraints almacena información básica sobre cada restricción en la base de datos actual.
sysdatabases almacena información básica sobre cada base de datos en el servidor actual.
sysindexes almacena información sobre cada índice en la base de datos actual.
sysobjects almacena información básica sobre cada objeto en la base de datos (restricciones, valores predeterminados, registros, reglas, procedimientos almacenados, etc.).
sysreferences almacena todas las columnas que incluyen restricciones FOREIGN KEY.
systypes almacena detalles de cada tipo de datos y del tipo de datos definido por el usuario proporcionado por el sistema.
El uso combinado de procedimientos almacenados del sistema, funciones del sistema, vistas de arquitectura de la información y tablas del sistema puede permitirnos obtener fácilmente toda la información de metadatos requerida.