ver usuarios usuario una tipos sobre rol privilegios permisos datos dar asignar acceso sql sql-server tsql

una - tipos de usuarios en sql server



¿Cómo enumero los tipos definidos por el usuario en una base de datos de SQL Server? (2)

Los tipos y UDT no aparecen en sys.objects. Debería poder obtener lo que está buscando con lo siguiente:

select * from sys.types where is_user_defined = 1

Necesito enumerar todos los tipos definidos por el usuario creados en una base de datos de SQL Server con CREATE TYPE , y / o averiguar si ya se han definido.

Con tablas o procedimientos almacenados haría algo como esto:

if exists (select * from dbo.sysobjects where name=''foobar'' and xtype=''U'') drop table foobar

Sin embargo, no puedo encontrar el equivalente (o una alternativa adecuada) para los tipos definidos por el usuario. Definitivamente no puedo verlos en ningún lado en sysobjects .

¿Alguien puede iluminarme?


Aunque la publicación es antigua, me pareció útil utilizar una consulta similar a esta. Es posible que no encuentre útil el formato, pero quería el nombre de tipo completo y quería ver las columnas en orden. Puedes eliminar todas las cosas SUBSTRING para obtener solo el nombre de la columna.

SELECT USER_NAME(TYPE.schema_id) + ''.'' + TYPE.name AS "Type Name", COL.column_id, SUBSTRING(CAST(COL.column_id + 100 AS char(3)), 2, 2) + '': '' + COL.name AS "Column", ST.name AS "Data Type", CASE COL.Is_Nullable WHEN 1 THEN '''' ELSE ''NOT NULL'' END AS "Nullable", COL.max_length AS "Length", COL.[precision] AS "Precision", COL.scale AS "Scale", ST.collation AS "Collation" FROM sys.table_types TYPE JOIN sys.columns COL ON TYPE.type_table_object_id = COL.object_id JOIN sys.systypes AS ST ON ST.xtype = COL.system_type_id where TYPE.is_user_defined = 1 ORDER BY "Type Name", COL.column_id