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
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484