Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用每个插入的行(但每个guid)将CONNER列增加1_Sql_Sql Server_Identity - Fatal编程技术网

Sql 如何使用每个插入的行(但每个guid)将CONNER列增加1

Sql 如何使用每个插入的行(但每个guid)将CONNER列增加1,sql,sql-server,identity,Sql,Sql Server,Identity,为这个笨拙的标题道歉请随意提出改进建议 我有一个表格记录,还有一个用户ID列,它指的是谁做了证词。还有一个计数器列,它是identity(1,1)(请记住,它与作为主键的Id列不同) 当我们开始从不同的账户存款时,问题变得很明显,因为以前,用户可以要求记录号码123到127,得到5个金额,但现在,他们的选择可能是123、125、126甚至更糟——什么都没有 我所能想象的处理它的唯一选项是创建一个业务逻辑层,该层检查用户的最高沉积计数器,并添加新记录,增加一个 但它肯定会很好,有它自动工作。类似于

为这个笨拙的标题道歉请随意提出改进建议

我有一个表格记录,还有一个用户ID列,它指的是谁做了证词。还有一个计数器列,它是identity(1,1)(请记住,它与作为主键的Id列不同)

当我们开始从不同的账户存款时,问题变得很明显,因为以前,用户可以要求记录号码123到127,得到5个金额,但现在,他们的选择可能是123、125、126甚至更糟——什么都没有

我所能想象的处理它的唯一选项是创建一个业务逻辑层,该层检查用户的最高沉积计数器,并添加新记录,增加一个


但它肯定会很好,有它自动工作。类似于identity(1,1,guid)的东西。有可能吗?

要维护这样一个列,您需要一个触发器

您可以考虑在查询表时计算值:

select r.*, row_number() over (partition by guid order by id) as seqnum
from records r;

要维护这样一个列,您需要一个触发器

您可以考虑在查询表时计算值:

select r.*, row_number() over (partition by guid order by id) as seqnum
from records r;
我能想象的唯一的选择就是创建一个企业 为用户检查最高沉积计数器的逻辑层 并在增加1的情况下增加新记录

是学习的时候了

  • 将最后给定的数字添加到account表中
  • 使用触发器在SQL Server的insert事件中指定更高的数字
完成了。这显然假设您的关系数据库是以关系方式使用的,因此记录与用户表相关,而不仅仅是保存用户id(这将是一种糟糕的设计)

如果没有,您还可以通过所述触发器维护一个包含所有可见GUID的表

我能想象的唯一的选择就是创建一个企业 为用户检查最高沉积计数器的逻辑层 并在增加1的情况下增加新记录

是学习的时候了

  • 将最后给定的数字添加到account表中
  • 使用触发器在SQL Server的insert事件中指定更高的数字
完成了。这显然假设您的关系数据库是以关系方式使用的,因此记录与用户表相关,而不仅仅是保存用户id(这将是一种糟糕的设计)


如果没有,您还可以通过所述触发器维护所有可见GUID的表。

“…在插入事件中…”?你是指我的,从我的C#插入东西的事件吗?或者它是一个与触发器类似的SQL术语?我一直害怕触发器,所以是时候增加一对了,呵呵。不,我是说SQL Server触发器。如果您对SQL Server一无所知,则不应对其进行编程。数据库服务器有很多我们学习使用工具的人都知道的功能。其中之一是通过在服务器上运行触发脚本来更改插入的数据。“…在插入事件中…”?你是指我的,从我的C#插入东西的事件吗?或者它是一个与触发器类似的SQL术语?我一直害怕触发器,所以是时候增加一对了,呵呵。不,我是说SQL Server触发器。如果您对SQL Server一无所知,则不应对其进行编程。数据库服务器有很多我们学习使用工具的人都知道的功能。其中之一是通过在服务器上运行触发脚本来更改插入的数据。哦,我现在明白了。我忘了提到我将使用EF查询表,所以在插入行时,数字实际上需要存储在那里+但是,为了一个简洁的陈述,@KonradViltersten。您可以使用视图来计算数字。EF可以访问视图。哦,我现在明白了。我忘了提到我将使用EF查询表,所以在插入行时,数字实际上需要存储在那里+但是,为了一个简洁的陈述,@KonradViltersten。您可以使用视图来计算数字。EF可以访问视图。