no,we can't create clustered index on non primary key just
because of the simple reason that in clstered
index,physical sorting is done while in non primary key
there might be hundreds of duplicate entries. so, if we
create clusterd index on non primary key it will get
confused and then error.
no its not possible to place clustered index on non key
column once the table contains any one key column, bcoz key
column itself contains one clustered index based on that
data sorted in ascending order.if u place one more
clustered index how it is possible to arrange the data in
soreted order.
No, Because Constraints must have integrity. These are,
Clustered and Non-Clustered. So, to use Primary key with
any one Clustered or Non-Clustered index.
Example in SQL Server 2000:
Query :
-------
create table BookDetails
(
Book_ID int identity(1,1) not null clustered,
Book_Title varchar(20),
Book_Type varchar(15),
Book_Author varchar(25),
Book_Edition float,
Book_Publisher varchar(20),
Book_Pub_Year datetime,
Book_Price int
)
Answer:
-------
Server: Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'clustered'.
Prevent this Error To use Clustered Primary Key:
------------------------------------------------
Query In SQL Server 2000:
-------------------------
create table BookDetails
(
Book_ID int identity(1,1) not null primary key clustered,
Book_Title varchar(20),
Book_Type varchar(15),
Book_Author varchar(25),
Book_Edition float,
Book_Publisher varchar(20),
Book_Pub_Year datetime,
Book_Price int
)
Answer:
-------
The command(s) completed successfully.
YES, We can create a clustered index on a non-primary
column. Check the folowing queries...
CREATE TABLE EMPLOYEES
(
empid int NOT NULL CONSTRAINT ix_pkEMPLOYEES PRIMARY KEY
NONCLUSTERED
, name varchar(25) NOT NULL
, age tinyint NOT NULL
)
CREATE CLUSTERED INDEX ixcEMPLOYEES ON EMPLOYEES (name)
NO.If the table has the primary key column, then by default
it will have a clustered index on that primary key
cloumn.So if you want to create a clustered index on non
primary key column then you have to create it before
setting a column as the primary key column or u have to
delete the clustered Primary key columns index to create a
new one.but it is recommended to have a clustered index on
primary key column.
We know sql server creates a clustered index by default
when we create a primary key. If you create a PK first and
then try to assign a candidate key a clustered index then
it is not possible bcos sql server allows one clustered
index per table.
But...
If you make a candidate key a clustered index and then
define the primary key sql server doesnot create clustered
index for the Primary Key column.
So the answer is yes...you can create a clustered index on
non-pk column :D
Finally, i want to conclude by saying.
1. We can create Clustered Index on Non-Primary Key Columns
and this table should not contain any other column with
Primary Key.
2. It is recommended that we create Clustered Indexing on
Primary Key Columns
I have created CLUSTERED on NON-PRIMARY Attribute because i
want my table has to be ordered in NON-PRIMARY column.
Because, most on my search and filtering will be on this
NON-PRIMARY column.
Is there any harm in this! Please recommend
Yes, We can, only thing is that, we can create clustered
index only on one key.If table contains any clustered index
on any key(even on primary or on unique key) just drop it
and create it on desired key. after it you can create a non
clustered index on primary or on unique key.
can any one answer this query,thank you in advance
Table 1 has 2 columns: EmployeeId, T shirtsize(values can
be 1,2,3)
Table 2 has 2 columns: EmployeeId, Region
Write SQL to Find the region which has the largest number
of people with Tshirt size=3
There is a trigger defined for INSERT operations on a
table, in an OLTP system. The trigger is written to
instantiate a COM object and pass the newly insterted rows
to it for some custom processing. What do you think of this
implementation? Can this be implemented better?