我有一个名为CreationDate的列,我设置了它 自动生成的值= true 自动同步= OnInsert 它工作得非常好但是我仍然想知道为什么在进行更新时它会同步 这是我更新此表中的任何列时SQL Server概要分析器显示的内容
exec sp_executesql N'UPDATE [dbo]。[T_Address] SET [CountryCode] = @ p2 WHERE([AddressGuid] = @ p0)AND ([ColVersion] = @ p1)
SELECT [t1]。[CreationDate], [T1]。[ColVersion] [t1]。[LastActivityDate] FROM [dbo]。[地址] AS [t1] WHERE ((@@ ROWCOUNT)> 0)AND ([t1]。[AddressId] = @ p3)',N'@ p0 uniqueidentifier,@ p1时间戳,@ p2 炭(2),@ P3 唯一标识符”,@ P0 = '18CD7808-038C-DF11-9935-00214F54AE12',@ P1 = 0x000000000000105D,@ P2 = 'DZ',@ P3 = '18CD7808-038C-DF11-9935-00214F54AE12'
为什么我的CreatationDate会被第二个选择返回? 我是否误解了自动同步= OnInsert
的概念感谢您的评论
答案 0 :(得分:2)
我认为Auto-Sync = OnInsert是正确的,但您需要将自动生成值设置为 False 。 “自动生成的价值”命名相当差;它实际上更适用于SQL Server计算列(可以根据任何内容进行更改),而不是在插入时默认值。