C# Tutorials and offshore development in India
    Tutorials   Resources   Forum   Reviews   Communities   Interview   Jobs   Projects   Training   Your Ad Here    
Silverlight Games | Mentor | Code Converter | Articles | Code Factory | Computer Jokes | Members | Peer Appraisal | IT Companies | Bookmarks | Polls | Revenue Sharing | Lobby | Gift Shop |


Prizes & Awards
My Profile



Active Members
TodayLast 7 Days more...






Resources » Articles » Databases »

Find tables which doesn't have Primary Key ...


Posted Date: 31 Dec 2006    Resource Type: Articles    Category: Databases
Author: Vadivel MohanakrishnanMember Level: Diamond    
Rating: 1 out of 5Points: 10



The below queries would list down the tables which doesn't have Primary Key in it.

In SQL Server 2000 :



Solution 1:

Select Table_name as "Table name"
From Information_schema.Tables
Where Table_type = 'BASE TABLE' and
Objectproperty (Object_id(Table_name), 'IsMsShipped') = 0 and
Objectproperty (Object_id(Table_name), 'TableHasPrimaryKey') = 0

Solution 2:

SysObjects :: Contains one row for each object that is created within a database, such as a constraint, default, log, rule, and stored procedure. No prizes for guessing 'U' refers to user tables, and 'PK' refers to Primary Keys :)

Select [name] as "Table Name without PK"
from SysObjects where xtype='U' and
id not in
(
Select parent_obj from SysObjects where xtype='PK'
)

SQL Server 2005:



Catalog views return information that is used by the Microsoft SQL Server 2005 Database Engine. We recommend that you use catalog views because they are the most general interface to the catalog metadata and provide the most efficient way to obtain, transform, and present customized forms of this information. All user-available catalog metadata is exposed through catalog views. [sys.tables is one of many catalog views introduced in SQL Server 2005]

Solution 1:

Select [name] AS table_name
from sys.tables
Where Objectproperty(object_id,'TableHasPrimaryKey') = 0

Solution 2; [Display with schema name]

Select Schema_Name(schema_id) AS schema_name,
[name] AS table_name from sys.tables
Where Objectproperty(object_id,'TableHasPrimaryKey') = 0
Order by schema_name, table_name



Responses


No responses found. Be the first to respond and make money from revenue sharing program.

Feedbacks      
Popular Tags   What are tags ?   Search Tags  
Sign In to add tags.
Finding tables without primary key  .  

Post Feedback


This is a strictly moderated forum. Only approved messages will appear in the site. Please use 'Spell Check' in Google toolbar before you submit.
You must Sign In to post a response.
Next Resource: Don't prefix user defined stored procedure with "SP_" ...
Previous Resource: How to find the number of days in a month
Return to Discussion Resource Index
Post New Resource
Category: Databases


Post resources and earn money!
 
More Resources



dotNet Slackers

About Us    Contact Us    Privacy Policy    Terms Of Use