create table tb1(id int  IDENTITY (1, 1) NOT NULL ,names varchar(10) not null)这个只能 对null值限制,但是 如果 为 空字符串 '' 却能保存进去,如何设计表, 操作越简单越好

解决方案 »

  1.   


    create table tb1
    (id int IDENTITY(1,1) NOT NULL ,
    names varchar(10) not null,
    check(names<>''))
      

  2.   

    上面是mysql中的check约束SQL SERVER 中这样:create table tb1
    (id int IDENTITY(1,1) NOT NULL ,
    names varchar(10) not null,
    CONSTRAINT chk_name CHECK (names<>'')
    )
      

  3.   


    USE tempdb
    CREATE TABLE tb1
        (
          id INT IDENTITY(1, 1)
                 NOT NULL ,
          names VARCHAR(10) NOT NULL
        )ALTER TABLE tb1 ADD CONSTRAINT df_names CHECK(NAMES<>'')INSERT INTO tb1(names) SELECT ''/*消息 547,级别 16,状态 0,第 1 行
    INSERT 语句与 CHECK 约束"df_names"冲突。该冲突发生于数据库"tempdb",表"dbo.tb1",column 'names'。
    语句已终止。*/
      

  4.   

    一般来说,给字段一个默认值即可.
    create table tb1
    (
    id int  IDENTITY (1, 1) NOT NULL ,
    names varchar(10) not NULL CONSTRAINT [df_tb1_names] DEFAULT('unknow')
    )
      

  5.   

    USE tempdb
    CREATE TABLE tb1
    (
      id INT IDENTITY(1, 1) NOT NULL ,
      names VARCHAR(10) NOT NULL CONSTRAINT chk_Person CHECK (names <> '')
    )