Я использую SQL Server 2008 Enterprise. Мне интересно, вызывает ли эта хранимая процедура взаимоблокировку, если выполняется несколькими потоками одновременно? Другой вопрос: лучше ли мы определять начало и конец транзакции внутри хранимой процедуры или определять начало и конец транзакции из кода клиента (например, кода ADO.Net)?
create PROCEDURE [dbo].[FooProc]
(
@Param1 int
,@Param2 int
,@Param3 int
)
AS
DELETE FooTable WHERE Param1 = @Param1
INSERT INTO FooTable
(
Param1
,Param2
,Param3
)
VALUES
(
@Param1
,@Param2
,@Param3
)
DECLARE @ID bigint
SET @ID = ISNULL(@@Identity,-1)
IF @ID > 0
BEGIN
SELECT IdentityStr FROM FooTable WHERE ID = @ID
END
спасибо заранее,
George