Sql server 实用技巧之主键、系统表与代码生成器
一、 从主键说起
CREATE TABLE BingoT1
(
id INT IDENTITY(1, 1) ,
NAME NVARCHAR(10) , --姓??名??
IdentityNo VARCHAR(18) , --身??份??证??号??码??
LogDate DATETIME DEFAULT ( GETDATE() ) , --录??入??日??期??
PRIMARY KEY ( id )--主??键??约??束??
)
Go
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '李??斌??', '123456789012345' )
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '张??霖??青??', '123456789012345678' )
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '李??菲??', '12345678901234500x' )
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '戈??晓??娟??', '123456789012345' )
Go
SELECT * FROM BingoT1
我们创建示例表BingoT1 并插入若干条数据,主键是一个自增字段。
问题一:误删了一条记录如何修复?
在企业管理器(sql 2000)或Sql Server Management Studio中无法修改Id字段,如图:
解决办法:
SET IDENTITY_INSERT bingot1 ON
INSERT INTO BingoT1(id, NAME, identityNo ) VALUES ( 1, '李?斌?', '123456789012345' )
SET IDENTITY_INSERT bingot1 OFF --用?完?一?定?要?关?闭?执行后查看数据如下:
从LogDate的时间上可以看出Id=1的数据是最后插入的。
问题二:Delete掉所有的数据后,为什么Id不从1 开始?
DELETE FROM bingot1
Go
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '李?斌?', '123456789012345' )
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '张?霖?青?', '123456789012345678' )
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '李?菲?', '12345678901234500x' )
INSERT INTO BingoT1( NAME, identityNo )
VALUES ( '戈?晓?娟?', '123456789012345' )
Go
SELECT * FROM BingoT1
Go执行后查看数据如下:
相关新闻>>
- 发表评论
-
- 最新评论 更多>>