代码我可以使用SQL @@ identity和没有触发器吗?
ALTER PROCEDURE [dbo].[spSocial.QuestionsAddNew]
@IdUser int,
@IdQuestionCategory int,
@Title int,
@Body int,
@CreatedDate int,
@ActivityDate int,
@VotesCount int,
@AnswersCount int,
@ViewedCount int
AS
BEGIN
SET NOCOUNT ON;
insert into
tblSocialQuestions
(IdUser, IdQuestionCategory, Title, Body, CreatedDate, ActivityDate, VotesCount, AnswersCount, ViewedCount)
values
(@IdUser, @IdQuestionCategory, @Title, @Body, @CreatedDate, @ActivityDate, @VotesCount, @AnswersCount, @ViewedCount)
select @@IDENTITY
exec [spSocial.Questions2Users] @IdUser, 'AskedCount', 1
END
据我了解
的@@ IDENTITY函数返回同一 会话中创建的 最后一个标识。
会话是数据库 连接。范围是当前的 查询或当前的存储过程。
如果会话是当前数据库连接,那么在ASP .NET用户请求的多线程环境中使用@@ Identity时没有问题吗?
如果10位用户同时添加一个新问题,并且[spSocial.QuestionsAddNew] 存储过程在具有相同SqlConnection的多线程环境中执行,使用@@ Identity时没有问题吗?
实际上,它是'SCOPE_IDENTITY()'没有领先的@@ – 2009-12-31 12:24:24
@marc_s:是的,在答案中编辑 – Andomar 2009-12-31 12:34:04