更改表student的一个字段(入团时间 datetime)为:(班内编号 int),注意,这个字段[班内编号]的位置就是[入团时间]的位置不能变啊,谢谢!

解决方案 »

  1.   

    这个直接用企业管理器操作后生成SQL就可以了..
      

  2.   

    /* To prevent any potential data loss issues, you should review this script in detail before running it outside the context of the database designer.*/
    BEGIN TRANSACTION
    SET QUOTED_IDENTIFIER ON
    SET ARITHABORT ON
    SET NUMERIC_ROUNDABORT OFF
    SET CONCAT_NULL_YIELDS_NULL ON
    SET ANSI_NULLS ON
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    COMMIT
    BEGIN TRANSACTION
    GO
    CREATE TABLE dbo.Tmp_student
    (
    序号 int NOT NULL,
    班内编号 int NULL,
    姓名 nchar(10) NULL,
    其它 nchar(10) NULL
    )  ON [PRIMARY]
    GO
    IF EXISTS(SELECT * FROM dbo.student)
     EXEC('INSERT INTO dbo.Tmp_student (序号, 姓名, 其它)
    SELECT 序号, 姓名, 其它 FROM dbo.student WITH (HOLDLOCK TABLOCKX)')
    GO
    DROP TABLE dbo.student
    GO
    EXECUTE sp_rename N'dbo.Tmp_student', N'student', 'OBJECT' 
    GO
    ALTER TABLE dbo.student ADD CONSTRAINT
    PK_student PRIMARY KEY CLUSTERED 
    (
    序号
    ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]GO
    COMMIT
      

  3.   

    EXEC sp_rename student.[入团时间]', '班内编号', 'COLUMN'
    我只知道这样,但是这样设置字段的类型呢?比如:入团时间是datetime;班内编号是int
      

  4.   

    --如果有数据,会自动转成int
    sp_configure 'allow updates',1
    RECONFIGURE WITH override
    go
    UPDATE syscolumns SET name='班内编号',xusertype=56,xtype=56,length=4,xprec=10,xscale=0,offset=-1
    WHERE id=object_id('student') AND name='入团时间'
    go
    sp_configure 'allow updates',0
    RECONFIGURE WITH override