Ir al contenido principal

[SQL] Obtener información de tablas

Buenas a todos.

Os propongo una forma rápida de obtener información sobre tablas de vuestra base de datos.
Vamos a ver como recuperar los nombres de las tablas, los campos y las claves foraneas de nuestra base de datos.


Nombre de las tablas de nuestra BBDD

USE MyDatabase
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

Información de los campos de las tablas

USE MyDatabase
SELECT TABLE_NAME as Tabla, COLUMN_NAME as Campo,
DATA_TYPE as Tipo, CHARACTER_MAXIMUM_LENGTH as Longitud, 
NUMERIC_PRECISION as Precision,NUMERIC_SCALE as Decimales
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY TABLE_NAME

Información de claves foraneas

SELECT fk.name as FK,
OBJECT_NAME(fk.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) as ColumnName,
OBJECT_NAME(fk.referenced_object_id) as ReferenceTableName,
COL_NAME(fc.referenced_object_id, fc.referenced_column_id) as ReferenceColumnName
FROM sys.foreign_keys as fk
INNER JOIN sys.foreign_key_columns AS fc on fk.OBJECT_ID = fc.constraint_object_id

No hace falta decir que estas sentencias se pueden poner condiciones WHERE para acotar los resultados.

Y por supuesto, si estamos usando Microsoft SQL Server Management Studio, si escribimos el nombre de nuestra tabla a examinar, y pulsamos ALT+F1, obtendremos toda esa información.
Tambien usando la sentencia sp_help MiTabla


Comentarios

Entradas populares de este blog

[PB] - Convertir Numero en Letra

¿Alguna vez has necesitado crear un proceso que tenga que traducir números a letras? Por ejemplo, para un proceso de emisión de cheques. Pues esta es la rutina que necesitas En este caso, vamos a desarrollar un traductor en dos idiomas, es castellano y en catalán. Para ello vamos a usar la función GlobalReplace que viene con las PFC's, pero si no las usas, no importa porque la he extraído para este ejemplo. 1- Creamos un objeto de usuario no visual autoinstanciable, por ejemplo lo llamamos ncst_num2txt 2- Definimos las siguientes variables de instancia private String is_cifra[],is_centenas[] 3- Creamos las funciones de of_GloblalReplace y otra para sobrecargar por defecto la opción de IgnoreCase (Esto lo puedes encontrar en la PFCs) public function string of_GlobalReplace (string as_Source, string as_Old, string as_New, boolean ab_IgnoreCase); ////////////////////////////////////////////////////////////////////////////// // // Function:   of_GlobalRe...

[.NET] Convertir Latitud y Longitud en Grados - Minutos y segundos

Hola a todos. Esta es una función para convertir un número de posición geográfica en grados, minutos y segundos. Como algunos pocos recordarán,una posición geográfica esta definida por latitud (Norte / Sur) y longitud (Este / Oeste) teniendo como referencia para la longitud el meridiano de Greenwich (Meridiano 0) y para la latitud la linea del Ecuador (Paralelo 0). Por lo que siempre hablaremos de posición " Grados Norte ", o " Grados Este ". Ahora es cuando entra en juego las matemáticas y la trigonometría (he de admitir que me encantan :D ). El hemisferio norte o sur solo tendría 90° Norte o Sur. Por ejemplo, El polo norte está a 90° 0' 0'' N de latitud. La longitud podríamos considerar el 0° 0' 0'' (estamos en el polo norte, por lo que es un solo punto, no hay longitud). En cambio, si nos movemos alrededor de la tierra por la linea de Ecuador, la latitud será 0° 0' 0'' (ni al norte, ni al sur) pero de Este a Oeste nos m...