评论会员:游客 时间:2012/02/07
查看imgsrc=]
米卡Wendelius:可能的原因是,新生成的自动增量值范围之外。例如,你执行INSERT语句,首先,在您的代码生成新的自动增量值(作为一个单独的语句),之后,你执行上面的语句。
SCOPE_IDENTITY调用必须是在同一范围内自动增量值生成。这意味着,在相同的存储过程,函数或批处理。
此外,在我看来,你不应该使用其他一些数据的自动增量值。自动递增仅用于创造独特的,描述性的价值,所以他们不应该有任何其他的意义。串联标识值,将其转换为字符串等,是不正确的方法使用的标识值。例如可以使用SCOPE_IDENTITY将1外国键列值在子表,但也是在这种情况下,该值应该被未修改
评论会员:。阿米尔Mahfoozi 时间:2012/02/07
你可以在C#中没有和让1计算领域做你的工作,
你可以定义代码计算,其计算公式是这样的领域提出:
(串(CONVERT(VARCHAR(最大值),(10000)[ID],0),(2),(4)))
然后你可以使用它,只要你想。你也可以忽略它在插入
请记住这个公式的ID小于10000的是,如果你预测它可能超过10000进一步请更改为1000000到一个适当的例子之一,我们有这个:
(串(转换(数据类型为varchar](最大值),(1000000)[ID],0),(2),(6)))
希望它帮助
评论会员:prakash00060 时间:2012/02/07
{A1}
或
create trigger update_increment for update as
if not update(incrementID)
UPDATE tb_users SET incrementID = incrementID + 1
from inserted WHERE tb_users.id = inserted.id