2015年1月8日 星期四

MS SQL server 筆記#4 SQL-ADD IDENTITY

/ *
  * ADD AN IDENTITY TO EXISTING COLUMN
  * 在現有的欄位加入IDENTITY
  */

無法透過ALTER COLUMN直接加入IDENTITY。
解決方法:
  1. DROP TABLE 重新建立。
  2. DROP COLUMN 重新加入COLUMN。

-- 方法1:
DROP TABLE name
GO
CREATE TABLE name(
  [ID] [int] IDENTITY(1,1) NOT NULL,
  [name] [nvarchar](max) NULL
)
GO


-- 方法2:
ALTER TABLE name ADD ID_NEW [int] IDENTITY(1,1)
GO
ALTER TABLE name DROP COLUMN ID
GO




// end

MS SQL server 筆記#3 SQL-ALTER CONSTRAINT

/ *
  * ALTER TABLE AND ADD A CONSTRAINT
  * 改變資料表結構:
  * * 改變欄位資料類型
  * * 加入限制(CONSTRAINT)

*/


-- 變更一個欄位(COLUMN)的資料類型為 datetime

ALTER TABLE [history_data] ALTER COLUMN [create_date] [datetime]

-- 加入限制(CONSTRAINT)名為col_a_def

-- Default在insert資料時,欄位create_date自動填入系統時間。
ALTER TABLE [history_data] ADD CONSTRAINT col_a_def DEFAULT sysdatetime() for [create_date];

DEFAULT@W3CDEFAULT@MSDN


-- 刪除限制

ALTER TABLE [history_data] DROP CONSTRAINT [col_a_def]




// end