【问题标题】:UDT existence in SQL Server table [duplicate]SQL Server 表中存在 UDT [重复]
【发布时间】:2018-01-19 10:55:47
【问题描述】:

如何检查表是否有 UDT,如果有,如何在 SQL Server 中获取给定表中的 UDT 列表

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    应该这样做:

    SELECT c.[name] AS ColumnName, ct.[name] AS UDTName
    FROM sys.tables t 
         JOIN sys.columns c ON t.object_id = c.object_id
         JOIN sys.types ct ON c.user_type_id = ct.user_type_id
    WHERE t.[name] = 'YourTableName'
      AND ct.is_user_defined = 1;
    

    【讨论】:

    • @marc_s 感谢您更正ColumnName 上的错字,但请不要将我的 SQL 更改为您的格式偏好。 :)
    • 它有效,对于完整的表名,我们可以使用“ Where c.object_id = OBJECT_ID('[Schema].[TableName]') ”
    • SELECT * FROM sys.columns c INNER JOIN sys.types t ON c.user_type_id = t.user_type_id WHERE c.object_id = OBJECT_ID('[Schema].[TableName]') AND t.is_user_defined = 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多