2017-04-09 26 views
1

我在SQL Server中有一個表,它有一個約束如Not null。當我輸入新條目時,如果我沒有填充任何內容,SQL Server會彈出錯誤消息,阻止Null值。如何限制SQL Server接受空字符串

但是,一旦我輸入一條記錄,並且稍後如果我通過刪除此列中的數據來編輯該記錄,SQL Server將接受空字符串。

+0

程序邏輯應該處理這個問題,不允許程序刪除/移除值,並且如果是不期望的用空代替。 –

+1

你的描述聽起來不正確。如果該列具有「NOT NULL」約束,則不允許在列中使用該約束。也許值是一個空字符串''''而不是'NULL'。 –

+0

可選調查檢查約束。 CHECK約束根據不基於另一列中的數據的邏輯表達式確定有效值。 –

回答

4

您可以使用CHECK CONSTRAINT

ALTER TABLE table 
ADD CONSTRAINT chkNotEmpty CHECK (LEN(col) > 0); 
1

通過UI您可以通過以下步驟

  • 1.open在設計視圖中添加表約束
  • 右鍵點擊任意欄並選擇「Check Constraints」
  • 編輯「Expression」並設置任意字段的最小長度爲 LEN(desiredField)> = 1