gpt4 book ai didi

sql-server - 这个语句有什么作用 @@RowCount > 0

转载 作者:行者123 更新时间:2023-12-02 23:38:23 25 4
gpt4 key购买 nike

摘自书籍:“Julia Lerman - 编程 Entity Framework ”

在 EF 中创建新实体时:

   var contact = Contact.CreateContact(0, "Camey", "Combs", DateTime.Now, DateTime.Now);
context.Contacts.AddObject(contact);
context.SaveChanges();

生成的sql:

   exec sp_executesql N'insert [dbo].[Contact]([FirstName], [LastName], [Title],
[AddDate], [ModifiedDate])
values (@0, @1, null, @2, @3)
select [ContactID]
from [dbo].[Contact]
where @@ROWCOUNT > 0 and [ContactID] = scope_identity()',
N'@0 nvarchar(50),@1 nvarchar(50),@2 datetime2(7),@3 datetime2(7)',
@0=N'Camey',@1=N'Combs',@2='2009-08-30 09:27:31.7449098',
@3='2009-11-30 09:27:31.7449098'

where 子句中 @@RowCount > 0 的用途是什么?

我不确定它的作用,根据 msdn 它返回受影响的行数,据我了解,这只是验证是否添加了联系人记录的一种方法他们也可以写@@ROWCOUNT = 1

这是正确的吗?

最佳答案

@@Rowcount 是一个特殊变量。它将始终保存最后一条语句更改或返回的记录数。在本例中,最后一条语句是插入。通过在 where 子句中使用 @@Rowcount > 0,您可以确保 select 仅在插入语句成功时匹配任何记录。

如果他们使用 @@Rowcount > 1 来代替,该陈述将永远不会成立。该插入语句只会插入 1 行。 1 不 > 1。

关于sql-server - 这个语句有什么作用 @@RowCount > 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com