Show Menu
Cheatography

Vistas de catálogo de objetos de SQL Server Cheat Sheet (DRAFT) by

Vistas de catálogo de objetos (Transact-SQL)

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Vistas de catálogo del sistema

Las funciones y vistas de admini­str­ación dinámica devuelven inform­ación sobre el estado del servidor que se puede utilizar para controlar el estado de una instancia del servidor, para diagno­sticar problemas y para optimizar el rendim­iento.

Algunas vistas de catálogo heredan filas de otras vistas de catálogo. Por ejemplo, el sys.tables vista de catálogo se hereda de la sys.ob­jects vista de catálogo. La vista de catálogo sys.ob­jects se denomina vista base y la vista sys.tables se denomina vista derivada. La vista de catálogo sys.tables devuelve las columnas especí­ficas de tablas y todas las columnas que devuelve la vista de catálogo sys.ob­jects. La vista de catálogo sys.ob­jects devuelve filas de objetos distintos de tablas, como proced­imi­entos almace­nados y vistas. Después de crear una tabla, sus metadatos se devuelven en ambas vistas. Si bien las dos vistas de catálogo devuelven diferentes niveles de inform­ación sobre la tabla, solo existe una entrada en los metadatos para esta tabla con un nombre y un object_id. Esto se puede resumir de la manera siguiente:

La vista base contiene un subcon­junto de columnas y un superc­onjunto de filas.

La vista derivada contiene un superc­onjunto de columnas y un subcon­junto de filas.
Las vistas de catálogo no contienen inform­ación sobre los datos de catálogo de replic­ación, copia de seguridad, plan de manten­imiento de bases de datos o Agente SQL Server.

Import­ante!

En versiones futuras de SQL Server, Microsoft puede aumentar la definición de cualquier vista de catálogo del sistema y agregar columnas al final de la lista. Se recomienda no usar la sintaxis SELECT * FROM sys.ca­tal­og_­vie­w_name en producción código porque el número de columnas devueltas podría cambiar y alterar la aplica­ción.

sys.ob­jects

Nombre de columna
tipo de dato
descri­pción
valores
name
sysname
nombre del objeto
object_id
int
Número de identi­fic­ación del objeto. Es único en una base de datos
princi­pal_id
int
Identi­ficador del propie­tario indivi­dual, si es diferente del propie­tario del esquema. De forma predet­erm­inada, los objetos contenidos en el esquema pertenecen al propie­tario del esquema. No obstante, es posible especi­ficar un propie­tario altern­ativo mediante la instru­cción ALTER AUTHOR­IZATION para cambiar la propiedad.
Es NULL si no existe ningún propie­tario individual altern­ativo. Es NULL si el tipo de objeto es uno de los siguie­ntes: C = CHECK constraint D = DEFAULT (const­raint or stand-­alone) F = FOREIGN KEY constraint PK = PRIMARY KEY constraint R = Rule (old-s­tyle, stand-­alone) TA = Assembly (CLR-i­nte­gra­tion) trigger TR = SQL trigger UQ = UNIQUE constraint
schema_id
int
Identi­ficador del objeto al que pertenece este objeto. 0 = No es un objeto secund­ario.
type
char(2)
Tipo de objeto
AF = Aggregate function (CLR) C = CHECK constraint D = DEFAULT (const­raint or stand-­alone) F = FOREIGN KEY constraint FN = SQL scalar function FS = Assembly (CLR) scalar­-fu­nction FT = Assembly (CLR) table-­valued function IF = SQL inline table-­valued function IT = Internal table P = SQL Stored Procedure PC = Assembly (CLR) stored­-pr­ocedure PG = Plan guide PK = PRIMARY KEY constraint R = Rule (old-s­tyle, stand-­alone) RF = Replic­ati­on-­fil­ter­-pr­ocedure S = System base table SN = Synonym SO = Sequence object U = Table (user-­def­ined) V = View Se aplica a: desde SQL Server 2012 (11.x) hasta SQL Server 2017. SQ = Service queue TA = Assembly (CLR) DML trigger TF = SQL table-­val­ued­-fu­nction TR = SQL DML trigger TT = Table type UQ = UNIQUE constraint X = Extended stored procedure Se aplica a: SQL Server 2016 (13.x) a través de SQL Server 2017, Se aplica a: Base de datos SQL de Azure, Almace­nam­iento de datos SQL de Azure, Almace­nam­iento de datos paralelos. ET = External Table
type_desc
nvarch­ar(60)
Descri­pción del tipo de objeto
AGGREG­ATE­_FU­NCTION CHECK_­CON­STRAINT CLR_SC­ALA­R_F­UNCTION CLR_ST­ORE­D_P­ROC­EDURE CLR_TA­BLE­_VA­LUE­D_F­UNCTION CLR_TR­IGGER DEFAUL­T_C­ONS­TRAINT EXTEND­ED_­STO­RED­_PR­OCEDURE FOREIG­N_K­EY_­CON­STRAINT INTERN­AL_­TABLE PLAN_GUIDE PRIMAR­Y_K­EY_­CON­STRAINT REPLIC­ATI­ON_­FIL­TER­_PR­OCEDURE RULE SEQUEN­CE_­OBJECT Se aplica a: desde SQL Server 2012 (11.x) hasta SQL Server 2017. SERVIC­E_QUEUE SQL_IN­LIN­E_T­ABL­E_V­ALU­ED_­FUN­CTION SQL_SC­ALA­R_F­UNCTION SQL_ST­ORE­D_P­ROC­EDURE SQL_TA­BLE­_VA­LUE­D_F­UNCTION SQL_TR­IGGER SYNONYM SYSTEM­_TABLE TABLE_TYPE UNIQUE­_CO­NST­RAINT USER_TABLE VIEW
create­_date
datetime
Fecha de creación del objeto
modify­_date
datetime
Fecha en que se modificó el objeto por última vez con una instru­cción ALTER. Si el objeto es una tabla o una vista, modify­_date también cambia cuando se crea o modifica un índice clúster en la tabla o la vista.
is_ms_­shipped
bit
Un componente interno de SQL Server creo el objeto.
is_pub­lished
bit
El objeto se publica.
is_sch­ema­_pu­blished
bit
Solo se ha publicado el esquema del objeto.
Contiene una fila por cada objeto definido por el usuario, el ámbito de esquema que se crea dentro de una base de datos, incluidos los compilados de forma nativa función escalar definida por el usuario.

sys.ob­jects no muestra los desenc­ade­nadores DDL, porque no tienen el ámbito de esquema. Todos los desenc­ade­nad­ores, tanto DML como DDL, se encuentran en sys.tr­iggers. Sys.Tr­iggers admite una mezcla de reglas de ámbito de nombre para los distintos tipos de desenc­ade­nad­ores.

Come­nta­rios sys.ob­jects

Puede aplicar el OBJECT_ID, OBJECT­_NAME, y OBJECT­PRO­PER­TYlas funciones integradas de () para los objetos mostrados en sys.ob­jects.

Hay una versión de esta vista con el mismo esquema, denominado sys.sy­ste­m_o­bjects, que muestra los objetos del sistema. Hay otra vista denominada sys.al­l_o­bjects que muestra los objetos de usuario y del sistema. Las tres vistas de catálogo tienen la misma estruc­tura.

En esta versión de SQL Server, un índice extendido, por ejemplo un índice XML o espacial, se considera como una tabla interna en sys.ob­jects (type = IT y type_desc = INTERN­AL_­TABLE). En un índice extendido:

name es el nombre interno de la tabla de índice.

parent­_ob­ject_id es el object_id de la tabla base.

Las columnas is_ms_­shi­pped, is_pub­lished y is_sch­ema­_pu­blished están establ­ecidas en 0.

sys.co­lumns

Nombre de columna
tipo de dato
descri­pción
valores
object_id
int
Identi­ficador del objeto al que pertenece esta columna.
name
sysname
Nombre de la columna. Es único en el objeto.
column_id
int
Identi­ficador de la columna. Es único en el objeto. Los Id. de columna no tienen que ser secuen­ciales.
system­_ty­pe_id
tinyint
Id. del tipo de sistema de la columna.
user_t­ype_id
int
Id. del tipo de la columna, tal como lo ha definido el usuario. Para devolver el nombre del tipo, unir a la sys.types vista en esta columna de catálogo.
max_length
smallint
Longitud máxima de la columna, en bytes.
-1 = la columna es de tipo de dato varchar (max), nvarchar (max), varbinary (max), o xml. Para columnas tipo text, el valor max_length será 16 o el valor establ­ecido por la opción "text in row" de sp_tab­leo­ption.
precision
tinyint
Precisión de la columna si es basada en números; en caso contrario, es 0.
escala
tinyint
La escala de la columna se basa en valores numéricos; en caso contrario, es 0.
collat­ion­_name
sysname
Nombre de la interc­alación de la columna si basados en caract­eres; en caso contrario, es NULL.
is_nul­lable
bit
 
1 = La columna acepta valores NULL.
is_ans­i_p­added
bit
 
1 = La columna utiliza el compor­tam­iento ANSI_P­ADDING ON si es de tipo character, binary o variant. 0 = La columna no es de tipo character, binary o variant.
is_row­guidcol
bit
 
1 = La columna se ha declarado como ROWGUI­DCOL.
is_ide­ntity
bit
 
1 = La columna tiene valores de identity.
is_com­puted
bit
 
1 = La columna es una columna calculada.
is_fil­estream
bit
 
1 = La columna es una columna FILEST­REAM.
is_rep­licated
bit
 
1 = La columna está replicada.
is_non­_sq­l_s­ubs­cribed
bit
 
1 = La columna tiene un suscriptor que no es de SQL Server.
is_mer­ge_­pub­lished
bit
 
= La columna es merge-­pub­lished
is_dts­_re­pli­cated
bit
 
1 = La columna se replica con SSIS.
is_xml­_do­cument
bit
 
1 = El contenido es un documento XML completo. 0 = el contenido es un fragmento de documento o el tipo de datos de columna no es xml.
xml_co­lle­cti­on_id
int
Es distinto de cero si el tipo de datos de la columna es xml y se ha escrito el código XML. El valor será el identi­ficador de la colección que contiene el espacio de nombres de esquema XML validación de la columna.
0 = No es una colección de esquemas XML.
defaul­t_o­bje­ct_id
int
Id. del objeto predet­erm­inado, indepe­ndi­ent­emente de si es un objeto indepe­ndiente sys.sp­_bi­nde­fault, o una restri­cción de valor predet­erm­inado de nivel de columna insertada. La columna parent­_ob­ject_id de un objeto predet­erm­inado de nivel de columna insertada es una referencia a la propia tabla.
0 = No hay un valor predet­erm­inado.
rule_o­bje­ct_id
int
Id. de la regla indepe­ndiente enlazada a la columna mediante sys.sp­_bi­ndrule.
0 = No hay ninguna regla indepe­ndi­ente. Para las restri­cciones CHECK de nivel de columna, vea sys.ch­eck­_co­nst­raints (Trans­act­-SQL).
is_sparse
bit
 
1 = La columna es una columna dispersa. Para obtener más inform­ación, vea Usar columnas dispersas.
is_col­umn_set
bit
 
1 = La columna es un conjunto de columnas. Para obtener más inform­ación, vea Usar columnas dispersas.
genera­ted­_al­way­s_type
tinyint
Se aplica a: de SQL Server 2016 (13.x) a SQL Server 2017, Base de datos SQL. Identifica cuando se genera el valor de columna (siempre será 0 para las columnas en tablas del sistema)
0 = NOT_AP­PLI­CABLE 1 = AS_ROW­_START 2 = AS_ROW_END Para obtener más inform­ación, consulte tablas temporales (bases de datos relaci­onales).
genera­ted­_al­way­s_t­ype­_desc
nvarch­ar(60)
Se aplica a: de SQL Server 2016 (13.x) a SQL Server 2017, Base de datos SQL. Descri­pción textual del genera­ted­_al­way­s_t­ypedel valor (siempre NOT_AP­PLI­CABLE para las columnas en tablas del sistema)
NOT_AP­PLI­CABLE AS_ROW­_START AS_ROW_END
Devuelve una fila para cada columna de un objeto que incluye columnas, como vistas o tablas. La siguiente lista incluye tipos de objetos que contienen columnas:



Table-­valued assembly functions (FT)

Inline table-­valued SQL functions (IF)

Internal tables (IT)

System tables (S)

Table-­valued SQL functions (TF)

User tables (U)

Views (V)