一个sql功能实现(40分)

  • 主题发起人 主题发起人 hufei
  • 开始时间 开始时间
H

hufei

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠: <br>我想实现这样的功能:当有空字符串向表中insert 时,不能insert <br>我建立了一个表 ywh(ywh) ywh 设为not null <br>我用下列语句写时,空字符串,仍然能写到表中,请问我错在何处,我如果实现我的要实现的功能 <br>谢谢 <br><br>procedure TForm1.BitBtn1Click(Sender: TObject); <br>var tempstr1:string; <br>begin <br>tempstr1:=''; <br>&nbsp; ADOQuery1.Close; <br>&nbsp; ADOQuery1.SQL.Clear; <br>&nbsp; ADOQuery1.SQL.Add('insert into ywh(ywh) values('''+tempstr1+''''+')'); <br>&nbsp; try <br>&nbsp; adoquery1.ExecSQL; <br>&nbsp; finally <br>&nbsp; end; <br>end;
 
在数据库中,零长度字符串('')并不等于NULL,所以上面的操作是合法的。<br>&nbsp; 利用下面的附加约束就可以达到禁止Name字段内容为零长度的目的:<br>ALTER TABLE [dbo].[TB1] WITH NOCHECK ADD CONSTRAINT [CK_TB1] CHECK (len([Name]) &gt; 0)<br><br>&nbsp; 测试效果:<br>[Microsoft][ODBC SQL Server Driver][SQL Server]INSERT 语句与 COLUMN CHECK 约束 'CK_TB1' 冲突。该冲突发生于数据库 'MyTEST',表 'TB1', column 'Name'。<br><br>[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
 
creation-zy:<br>请问我如何,在sqlserver中设置约束呢
 
你输入的‘’并不是NULL,加约束或判断就可以。
 
多人接受答案了。
 
后退
顶部