想建一列 是房间ID由1-100组成 
现在由于忌讳的问题没有4.7 数字的房号
问一下这样的表怎么建??

解决方案 »

  1.   


    ALTER TABLE tb
    ADD CONSTRAINT check4 CHECK (charindex('4',cast(id as varchar(10)))=0);ALTER TABLE tb
    ADD CONSTRAINT check7 CHECK (charindex('7',cast(id as varchar(10)))=0);
      

  2.   


    create table tst ( 
      s1 int NOT NULL CHECK(S1   NOT LIKE '%4%' AND  S1 NOT LIKE '%7%') , 
      s2 char(10) 
    )insert into tst values (1,'haha')insert into tst values (4,'hah''')insert into tst values (7,'hah''')SELECT * FROM TST--DROP TABLE TST(所影响的行数为 1 行)服务器: 消息 547,级别 16,状态 1,行 1
    INSERT 语句与 COLUMN CHECK 约束 'CK__tst__s1__702A93E2' 冲突。该冲突发生于数据库 'lsddb2',表 'tst', column 's1'。
    语句已终止。
    服务器: 消息 547,级别 16,状态 1,行 1
    INSERT 语句与 COLUMN CHECK 约束 'CK__tst__s1__702A93E2' 冲突。该冲突发生于数据库 'lsddb2',表 'tst', column 's1'。
    语句已终止。(所影响的行数为 1 行)
      

  3.   

    IF OBJECT_ID('TB') IS NOT NULL DROP TABLE TB
    GO
    CREATE TABLE TB(ID INT)
    INSERT INTO TB
    SELECT  NUMBER FROM MASTER..SPT_VALUES WHERE TYPE='P' 
    AND NUMBER BETWEEN 1 AND 100 AND NUMBER/10 NOT IN (4,7) AND NUMBER%10 NOT IN (4,7)
    SELECT * FROM TB
    /*
    1
    2
    3
    5
    6
    8
    9
    10
    11
    12
    13
    15
    16
    18
    19
    20
    21
    22
    23
    25
    26
    28
    29
    30
    31
    32
    33
    35
    36
    38
    39
    50
    51
    52
    53
    55
    56
    58
    59
    60
    61
    62
    63
    65
    66
    68
    69
    80
    81
    82
    83
    85
    86
    88
    89
    90
    91
    92
    93
    95
    96
    98
    99
    100
    */
      

  4.   


    IF OBJECT_ID('TB') IS NOT NULL DROP TABLE TB
    GO
    CREATE TABLE TB(ID INT)
    INSERT INTO TB
    SELECT  NUMBER FROM MASTER..SPT_VALUES WHERE TYPE='P' 
    AND NUMBER BETWEEN 1 AND 100 AND  number not like '%[47]%'SELECT * FROM TB
    (64 行受影响)
    ID
    -----------
    1
    2
    3
    5
    6
    8
    9
    10
    11
    12
    13
    15
    16
    18
    19
    20
    21
    22
    23
    25
    26
    28
    29
    30
    31
    32
    33
    35
    36
    38
    39
    50
    51
    52
    53
    55
    56
    58
    59
    60
    61
    62
    63
    65
    66
    68
    69
    80
    81
    82
    83
    85
    86
    88
    89
    90
    91
    92
    93
    95
    96
    98
    99
    100(64 行受影响)