如题!用自增ID作为关键字,现在我想以这个自增ID=-1来表示不可能出现的记录,可以吗?

解决方案 »

  1.   

    CREATE TABLE [TableA] (
    [nId] [int] IDENTITY (100000, -1) NOT NULL ,
    [Cname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOinsert TableA(Cname)
    values('aa')
    insert TableA(Cname)
    values('bb')
    insert TableA(Cname)
    values('cc')
    insert TableA(Cname)
    values('dd')
    goselect * from TableA
    go
    drop table TableA
    go
      

  2.   

    二楼三楼的两位的意思是不是指:可以用ID=-1表示不可能出现的记录?但是当ID号超过INT的正数的范围的时候不是出现溢出现象,此时不就出现了负值吗?
      

  3.   

    溢出問題要自己控制吧,樓主可以自己試試id能不能為-1啊我是沒用過,:)
    現在沒sql server 沒法試
      

  4.   

    int、bigint、smallint 和 tinyint
    使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。
      

  5.   

    标识列可以的SELECT *,IDENTITY(INT,-10,1) ID INTO t2 FROM t1
    或者
    SELECT *,IDENTITY(INT,1,-1) ID INTO t2 FROM t1都能产生负的标识列.