我在NVARCHAR
列上添加了一个NOT NULL
约束,这样它就不能允许任何空值。但不幸的是,SQL Server将NULL
和空值作为两个单独的值处理!
那么,如何让服务器在不向列插入任何内容时抛出异常呢?
我在考虑使用约束CHECK,但在使用NVARCHAR
列时没有找到任何示例!
发布于 2011-03-31 01:14:20
您可以添加一个检查约束,以确保字符串不为空。
CREATE TABLE [dbo].[Foo](
[bar] [nvarchar](50) NOT NULL
)
ALTER TABLE [dbo].[Foo] WITH CHECK
ADD CONSTRAINT [CK_Foo] CHECK (([bar]<>N''))
发布于 2011-03-31 01:20:00
使用check约束:
CREATE TABLE SomeTable(
SomeColumn VARCHAR(50) NOT NULL CHECK (SomeColumn <> '')
)
发布于 2011-03-31 01:11:11
这听起来像是trigger的工作。基本上,您需要在insert上使用触发器,以便检查新值,如果新值为空字符串,则会导致触发器失败。
https://stackoverflow.com/questions/5489648
复制相似问题