1.Yöntem
Bu yöntemde OBJECTPROPERTY fonksiyonun TableHasPrimaryKey kullanarak tüm tabloları kontrol edilir ve Primary Key olmayan tespit edilir.
use [AdventureWorks2016CTP3]
go
SELECT
SCHEMA_NAME(schema_id) AS [Schema name] ,
name AS [Table name] FROM sys.tables
WHERE
OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 0
2.Yöntem
En kolay yöntem sys.object adlı viewin kontrol edilmesidir. En kolay yöntem budur.
use [AdventureWorks2016CTP3]
GO
SELECT
SCHEMA_NAME(schema_id) AS [Schema name]
, name AS [Table name] FROM sys.objects
WHERE
[type]='U' AND object_id
NOT IN (
SELECT parent_object_id FROM sys.objects
WHERE [type]='PK' )
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhCKyeOuTgONXyF-OE9Bxcmcng4aJ0ekh2IpMrk7dV7XipCoArlKkxSFAs45InRxiqmA88o6gItBhmbOxzZcOw4KOI6X-ZYeaa-aKxq03fk6OTQzeR3meJeExDWtTeq-wpWawlbourK1U/s1600/1.jpg)
3.Yöntem
Bu yöntem ise sys.tables & sys.key_constraints adlı system viewlerini kullanmaktadır.
use [AdventureWorks2016CTP3]
GO
SELECT
SCHEMA_NAME(schema_id) AS [Schema name]
, name AS [Table name]
FROM sys.tables
WHERE object_id NOT IN
(
SELECT parent_object_id
FROM sys.key_constraints
WHERE type = 'PK'
);
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhCKyeOuTgONXyF-OE9Bxcmcng4aJ0ekh2IpMrk7dV7XipCoArlKkxSFAs45InRxiqmA88o6gItBhmbOxzZcOw4KOI6X-ZYeaa-aKxq03fk6OTQzeR3meJeExDWtTeq-wpWawlbourK1U/s1600/1.jpg)