我在SQL Server数据库中创建表时,注意到了数据库列的一个特定属性Deterministic
。请参见下面的截图:
所以我的问题是,这是否是SQL Server中任何数据类型的正确属性,仍然影响列中存储值的方式,还是只是过去的遗留问题,可能来自SQL Server 2000或SQL Server 2005,那里曾经有一些非确定性的数据类型。了解此数据类型特征的任何信息都将非常有用。截至今天,我们在SQL Server中是否有任何非确定性的数据类型?
由于我没有看到任何数据类型的"Deterministic"为"No",因此更加困惑。我也进行了大量的谷歌搜索,但每次搜索都会带我到关于Deterministic和Non-Deterministic SQL Server函数的页面,而没有人谈论与SQL Server数据类型相关的"Non-deterministic"特性。
https://technet.microsoft.com/en-us/library/ms178091(v=sql.110).aspx
([QtyAvailable]*[UnitPrice])
创建了一个计算列。它的Deterministic
值仍为Yes
。QtyAvailable 和 UnitPrice 是我的表中两列,分别为smallint
和money
类型。 - RBTcreate table t (a int, b money, c AS ([b]+[a]), d AS ([b]+datepart(day,getdate()))) insert into t values (1, 2) select COLUMNPROPERTY (OBJECT_ID('dbo.t'), 'c', 'IsDeterministic') select COLUMNPROPERTY (OBJECT_ID('dbo.t'), 'd', 'IsDeterministic')
- artmgetdate()
。 - Blorgbeard