If Exists (Select * From sysobjects Where name = N'Table1' And user_name(uid) =
N'dbo')
Select * into temptable From Dbo.Table1 --先把表里面的数据导出到一个临时表里
Drop Table dbo.Table1 --删除掉该表
Go
--下面创建新表
CREATE TABLE [dbo].[Table1] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[code] [char] (3) NULL ,
[sl] [int] NULL
) ON [PRIMARY]
GO
Alter Table dbo.Table1 Add Constraint --设定主键约束
PK_Table1 Primary Key Clustered
([id] )
Go
--下面把前面导出的数据导回修改后的表
INSERT INTO Table1 (code,sl)
SELECT code,sl
FROM tempTable
Go
在修改一个旧表的结构时,愚以为,最为重要的是要保证数据的正确与完整,以上步骤可保无恙。
另外,以防万一,应该养成修改结构之前备份数据库的良好习惯。这对于我来说是有血的教训的!