小弟现已把表分为12个月,CHECK约束时间字段按月分的,现在的问题是我想加入自增字段,该字段是int型,请问我该如何加,加的时候要注意哪些地方,该试图有INSTEAD OF触发器
--创建分区表
CREATE TABLE T1(id int identity(1,1),dates datetime CHECK (datepart(mm,dates)=8))
CREATE TABLE T2(id int identity(1,1),dates datetime CHECK (datepart(mm,dates)=9))
GO
--创建分区视图
CREATE VIEW V1 AS
SELECT * FROM T1
UNION ALL
SELECT * FROM T2
GO
--创建基于分区视图的INSTEAD OF INSERT触发器
CREATE TRIGGER TRI1 ON V1
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO T1(DATES) SELECT DATES FROM INSERTED WHERE DATEPART(MM,DATES)=8
INSERT INTO T2(DATES) SELECT DATES FROM INSERTED WHERE DATEPART(MM,DATES)=9
END
GO
--在视图上执行INSERT操作
INSERT INTO V1(ID,DATES) SELECT 0,GETDATE()
INSERT INTO V1(ID,DATES) SELECT 0,GETDATE()-15
INSERT INTO V1(ID,DATES) SELECT 0,GETDATE()-30
--查看执行结果
/*
ID DATES
---- -----------------------
1 2005-08-24 11:11:59.357
2 2005-08-09 11:11:59.357
1 2005-09-08 11:11:59.357
*/
--删除测试环境
DROP TRIGGER TRI1
可以在基表中加自增字段
如果视图选择的列中有唯一列,可以通过子查询产生序号