sp를 asp.net 페이지에서 다음과 같이 사용하고 싶습니다.RAISERROR 및 ROLLBACK TRANSACTION
sp에서 오류 메시지를 asp.net으로 어떻게 표시합니까?
sp를 호출하여 asp.net에서 작업을 수행하는 DAL 속성 샘플은 무엇입니까?
sp에서 RAISERROR와 ROLLBACK TRANSACTION을 사용할 때 충돌이 있습니까?
ALTER PROCEDURE [dbo].[Cyrex_ChangeUsername]
@oldName nvarchar(128),
@newName nvarchar(128)
AS
declare @error_var int, @rowcount_var int
declare @newNameCount int
begin transaction
select @newNameCount = count(*)
from Users
where Username = ltrim(rtrim(@newName))
if @newNameCount > 0
begin
RAISERROR('Username already exists. @newName=%s', 10, 1, @newName)
ROLLBACK TRANSACTION
RETURN
end
update Users
set Username = ltrim(rtrim(@newName))
where Username = ltrim(rtrim(@oldName))
SELECT @error_var = @@ERROR, @rowcount_var = @@ROWCOUNT
IF @rowcount_var <> 1 OR @error_var <> 0
BEGIN
RAISERROR('Could not Update User.Username. @oldName=%s', 10, 1, @oldName)
ROLLBACK TRANSACTION
RETURN
END
update aspnet_Users
set
Username = @newName,
LoweredUserName = LOWER(@newName)
where LoweredUserName = LOWER(@oldName)
SELECT @error_var = @@ERROR, @rowcount_var = @@ROWCOUNT
IF @rowcount_var <> 1 OR @error_var <> 0
BEGIN
RAISERROR('Could not Update aspnet_Users.Username. @oldName=%s', 10, 1, @oldName)
ROLLBACK TRANSACTION
RETURN
END
Commit transaction
어떤 버전의 SQL Server를 사용 하시겠습니까? – gbn