奇怪的要求,但在这里。我们在表格中有一个CustomerId VarChar(25)
列。我们需要让它NVarChar(25)
来解决类型转换问题。
CHARINDEX vs LIKE search gives very different performance, why?
但是,我们不希望允许非拉丁字符存储在此列中。有没有办法在列上放置这样的约束?我宁愿让数据库处理这个检查。一般来说,对于我们所有的字符串,我们都可以使用NVarChar
,但是像ID这样的一些列不适合这样,因为可能会有来自不同语言的相似字符串
示例:
CustomerId NVarChar(1) - PK
那两个不同的字符串(第二个是西里尔字母)
我想阻止此进入方案。我想确保无法将值2保存到字段中。
答案 0 :(得分:0)
以防它有助于某人。不确定它是否最优雅"解决方案,但我在这些字段上放置了这样的约束:
ALTER TABLE [dbo].[Carrier] WITH CHECK ADD CONSTRAINT [CK_Carrier_CarrierId] CHECK ((CONVERT([varchar](25),[CarrierId],(0))=[CarrierId]))
GO