Attualità e Information Technology

August 16, 2007

T-SQL - OBJECTPROPERTY e tabelle senza chiavi

Filed under: IT, SQL

Avevo letto su qualche blog, ma ora non ricordo. Comunque per avere velocemente un elenco di tabelle di un dato database che sono prive di chiave primaria, basta sfruttare la funzione OBJECTPROPERTY(id, property). Per dettagli rimando alla guida on-line: OBJECTPROPERTY (Transact-SQL).

Tra le property che si possono specificare, infatti, è presente anche TableHasPrimaryKey, che svolge per l’appunto il compito che ci serve.

La banale query risulta quindi essere una cosa del tipo:

SELECT name AS tableName
FROM sys.tables
WHERE OBJECTPROPERTY(object_id, ‘TableHasPrimaryKey’) = 0
ORDER BY tableName

Cambiando la property ad esempio in TableHasIdentity ecco che potremmo avere l’elenco delle tabelle che hanno per l’appunto un campo identity:

SELECT name AS tableName
FROM sys.tables
WHERE OBJECTPROPERTY(object_id, ‘TableHasIdentity’) = 1
ORDER BY tableName

Ovviamente qualora volessimo usare una property che non fa riferimento ad una tabella ma altresì a qualche altro elemento del database dovremmo cambiare il FROM e puntare sulla tabella di sistema più adatta ai nostri scopi.

Technorati tags , , , , ,

AddThis Social Bookmark Button
   

Get free blog up and running in minutes with Blogsome | Theme designs available here