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



   在修改一个旧表的结构时,愚以为,最为重要的是要保证数据的正确与完整,以上步骤可保无恙。
   另外,以防万一,应该养成修改结构之前备份数据库的良好习惯。这对于我来说是有血的教训的!