Sql Server Identity Sutunları Belirlemek

BilgeAdam’daki eski öğrencilerimden biri şu soruyu sordu; “Herhangi bir veritabanındaki tüm tablolarda bulunan Identity Sütunları belirlemenin bir yolu var mıdır?”

Aslında bir değil, tam üç yolu var;

Yöntem 1 : COLUMNPROPERTY fonksiyonunu kullanmak

SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, ‘ISIDENTITY’) = 1 ORDER BY TABLE_NAME</pre>

Yöntem 2 : SYS.ALL_COLUMNS View’unu kullanmak

SELECT
    OBJECT_NAME(AC.OBJECT_ID),
    SO.NAME
FROM
    SYS.ALL_COLUMNS AS AC
    INNER JOIN SYS.OBJECTS AS SO ON OBJECT_NAME(AC.OBJECT_ID) = SO.NAME
WHERE
    AC.IS_IDENTITY = 1 AND
    SO.TYPE = 'U'

Aynı yöntemi biraz faklı olarak şöyle de yazabiliriz;

SELECT
    OBJECT_NAME(OBJECT_ID),
    NAME
FROM
    SYS.ALL_COLUMNS
WHERE
    IS_IDENTITY = 1 AND
    OBJECTPROPERTY(OBJECT_ID, 'ISUSERTABLE') = 1

Yöntem 3 : SYS.IDENTITY_COLUMNS View’unu kullanmak

SELECT
    OBJECT_NAME(IC.OBJECT_ID),
    SO.NAME
FROM
    sys.identity_columns AS IC
    INNER JOIN SYS.OBJECTS AS SO ON OBJECT_NAME(IC.OBJECT_ID) = SO.NAME
WHERE
    SO.TYPE = 'U'

Aynı yöntemi biraz faklı olarak şöyle de yazabiliriz;

SELECT
    OBJECT_NAME(OBJECT_ID),
    NAME
FROM
    sys.identity_columns
WHERE
    OBJECTPROPERTY(OBJECT_ID, 'ISUSERTABLE') = 1


İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı