Friday, January 1, 2010

SQL Server: การสร้าง Primary Key แบบ Auto Increment

แค่ใส่ PRIMARY KEY IDENTITY ต่อท้าย Primary Key

ตัวอย่างเช่น ถ้าเป็นการสร้าง table ใหม่

CREATE TABLE [dbo].[Cars]( [CarId] [int] PRIMARY KEY IDENTITY, [CarName] [nvarchar](100) NULL, [CarDate] [datetime] NULL, ) ON [PRIMARY] GO

เวลา insert ก็ไม่ต้องใส่ CarId มาด้วย มันจะ run เลขใหม่ให้เอง

ถ้าจะสร้าง Primary Key ให้กับ table ที่ยังไม่มี primary key ก็ใช้คำสั่ง


ALTER TABLE table1ADD CONSTRAINT PK_table1 PRIMARY KEY (IdColumn)


ถ้าเป็น table ที่มีอยู่แล้ว ต้องการจะเพิ่มฟิลด์ใหม่ให้เป็น primary key แบบ auto increment


Alter table table1 add  [IdColumn] [int] PRIMARY KEY IDENTITY

Saturday, February 23, 2008

SQL Server: ลบ Column ที่ Not Null และมีค่า Default

สำหรับ filed ที่คุณมีการตั้งค่า default ไว้ SQL Server จะไม่ยอมให้ drop โดยตรง เมื่อคุณใช้

alter table Table1 drop column Col1

จะขึ้น error ว่า
Msg 5074, Level 16, State 1, Line 1
The object 'DF__Table1__Col1__35E7E693' is dependent on column 'Col1'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN Col1 failed because one or more objects access this column.

คุณต้อง

1. แก้ให้ Col1 เป็น null ได้ และไม่มีค่า default
alter table Table1 alter column [Col1] [int] NULL

2. ลบ constraint DF_... ทิ้งไปก่อน
alter table Table1 drop constraint DF__Table1__Col1__1FC39B4A

3. ทีนี้ก็ drop column ได้แล้ว
alter table Table1 drop column Col1

Command(s) completed successfully.