How do you determine what SQL Tables have an identity column programmatically

后端 未结 13 2049
借酒劲吻你
借酒劲吻你 2020-11-30 23:44

I want to create a list of columns in SQL Server 2005 that have identity columns and their corresponding table in T-SQL.

Results would be something like:

Tab

13条回答
  •  暖寄归人
    2020-12-01 00:18

    Use this :

    DECLARE @Table_Name VARCHAR(100) 
    DECLARE @Column_Name VARCHAR(100)
    SET @Table_Name = ''
    SET @Column_Name = ''
    
    SELECT  RowNumber = ROW_NUMBER() OVER ( PARTITION BY T.[Name] ORDER BY T.[Name], C.column_id ) ,
        SCHEMA_NAME(T.schema_id) AS SchemaName ,
        T.[Name] AS Table_Name ,
        C.[Name] AS Field_Name ,
        sysType.name ,
        C.max_length ,
        C.is_nullable ,
        C.is_identity ,
        C.scale ,
        C.precision
    FROM    Sys.Tables AS T
        LEFT JOIN Sys.Columns AS C ON ( T.[Object_Id] = C.[Object_Id] )
        LEFT JOIN sys.types AS sysType ON ( C.user_type_id = sysType.user_type_id )
    WHERE   ( Type = 'U' )
        AND ( C.Name LIKE '%' + @Column_Name + '%' )
        AND ( T.Name LIKE '%' + @Table_Name + '%' )
    ORDER BY T.[Name] ,
        C.column_id
    

提交回复
热议问题