Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Column in table is of a type that is invalid for use as a key column in an index

I have a table where I am storing employee details. I want to alter the table and set one of the column emp_code as primary key. Its datatype is nvarchar(max), but I am not able to set it as primary key.

I run the following query :

ALTER TABLE user_master
ADD PRIMARY KEY (emp_code)

but it gives me an error :

Msg 1919, Level 16, State 1, Line 1
Column emp_code in table user_master is of a type that is invalid for use as a key column in an index.
Msg 1750, Level 16, State 0, Line 1
Could not create constraint. See previous errors.

How can I overcome this?

like image 310
hitesh.gawhade Avatar asked Oct 30 '12 10:10

hitesh.gawhade


1 Answers

An index's key cannot exceed a total size of 900 bytes. Change the data type to NVARCHAR(450). If that is not suitable, use a surrogate key (typically an IDENTITY column).

like image 69
ta.speot.is Avatar answered Sep 22 '22 13:09

ta.speot.is