解决方案 »

  1.   

    我觉得这东西应该做到你的程序上~~真要做到约束上,你参考一下吧
    --创建表的时候加
    CREATE TABLE [customer](
    [password]varchar(50)CHECK(LEN([password])>=3)
    ,[zipcode]varchar(6)CHECK(LEN([zipcode])=6 AND PATINDEX('%[^0-9]%',[zipcode])<=0)
    ,[email]varchar(100)CHECK(CHARINDEX('@',[email])>0)
    ,[loginname]varchar(50)CHECK(LEFT([loginname],1)NOT IN('^','_','@','#','.'))
    )
    GO
    --非创建表的时候添加
    ALTER TABLE [customer] ADD CONSTRAINT CK_password check(LEN([password])>=3)
    --约束不能修改,需要删了重新执行上面那句
      

  2.   

    建议在前端程序中实现,输入或用户提交时做必要的数据检查,都正确的话才提交给数据库. 不符约束的数据是不允许写进数据库的, 如果全部约束检查工作都在数据库端实现,会有以下问题:
    1.约束检查用单纯的字段约束或触发器TSQL实现比较麻烦.
    2.增加数据库服务器的CPU负担(而前端程序基本不检查数据).
    3.前端与数据库服务器的网络上多了一些来来回回的没必要的传输.