我在sql server 2005表中有一个nvarchar(max)列,用于存储.NET TimeSpan对象的字符串表示.有时会手动编辑表格.我想添加一个检查约束来验证TimeSpan.Parse()可以解析该字符串.我该怎么做?我想我可以使用其中一种方法在sql server中启用正则表达式,但我想找到一种更简单的方法,如果有的话!
存储.Net Timespans的更好方法是int
使用TimeSpan .Ticks
属性的列.
当然,这打破了手动表编辑.但无论如何,手动表编辑都是邪恶的.确保TimeSpan.Parse()有效或者您具有有效值的最佳方法是使用相关函数提供客户端应用程序以完成编辑.
最后,如果必须这样做,请尝试构建一个使用TimeSpan.Parse()进行测试的clr用户定义函数.然后看看你是否可以在约束中包含该函数(如果udf(特别是clr udf)被允许的话,我真的不知道如何).