首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何约束NVARCHAR列上没有空字符串

如何约束NVARCHAR列上没有空字符串
EN

Stack Overflow用户
提问于 2011-03-31 01:09:27
回答 5查看 28K关注 0票数 35

我在NVARCHAR列上添加了一个NOT NULL约束,这样它就不能允许任何空值。但不幸的是,SQL Server将NULL和空值作为两个单独的值处理!

那么,如何让服务器在不向列插入任何内容时抛出异常呢?

我在考虑使用约束CHECK,但在使用NVARCHAR列时没有找到任何示例!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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''))
票数 46
EN

Stack Overflow用户

发布于 2011-03-31 01:20:00

使用check约束:

CREATE TABLE SomeTable( 
    SomeColumn VARCHAR(50) NOT NULL CHECK (SomeColumn <> '')
)
票数 13
EN

Stack Overflow用户

发布于 2011-03-31 01:11:11

这听起来像是trigger的工作。基本上,您需要在insert上使用触发器,以便检查新值,如果新值为空字符串,则会导致触发器失败。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5489648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档