moferferi
پنج شنبه 25 تیر 1388, 19:15 عصر
سلام
من یک sp دارم یک باهاش عملیات تراکنش را انجام میدم.
وقتی که با یک کوئری در خود sql ازش استفاده میکنم مشکلی نداره و کار میکنه
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
ALTER PROCEDURE [dbo].[myTransAction]
@newcustid nchar(5),
@newcompname nvarchar(40),
@oldcustid nchar(5)
as
declare @inserr int
declare @delerr int
declare @maxerr int
set @maxerr=0
begin transaction
--add a customer
insert into customers(customerid,companyname)
values(@newcustid,@newcompname)
--save error number returned from insert statment
set @inserr=@@error
if @inserr>@maxerr
set @maxerr=@inserr
--delete a customer
delete from customers where customerid=@oldcustid
--save error number returned from delete statment
set @delerr=@@error
if @delerr>@maxerr
set @maxerr=@delerr
--if an error occurred,roll back
if @maxerr<>0
begin
rollback
print 'transaction rolled back'
end
else
begin
commit
print 'tranaction committed'
end
print 'insert error number:'+cast(@inserr as nvarchar(8))
print 'delete error number:'+cast(@delerr as nvarchar(8))
return @maxerr
ولی وقتی اونا از طریق سی شارپ اجرا میکنم خطا میده.
من یک sp دارم یک باهاش عملیات تراکنش را انجام میدم.
وقتی که با یک کوئری در خود sql ازش استفاده میکنم مشکلی نداره و کار میکنه
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
ALTER PROCEDURE [dbo].[myTransAction]
@newcustid nchar(5),
@newcompname nvarchar(40),
@oldcustid nchar(5)
as
declare @inserr int
declare @delerr int
declare @maxerr int
set @maxerr=0
begin transaction
--add a customer
insert into customers(customerid,companyname)
values(@newcustid,@newcompname)
--save error number returned from insert statment
set @inserr=@@error
if @inserr>@maxerr
set @maxerr=@inserr
--delete a customer
delete from customers where customerid=@oldcustid
--save error number returned from delete statment
set @delerr=@@error
if @delerr>@maxerr
set @maxerr=@delerr
--if an error occurred,roll back
if @maxerr<>0
begin
rollback
print 'transaction rolled back'
end
else
begin
commit
print 'tranaction committed'
end
print 'insert error number:'+cast(@inserr as nvarchar(8))
print 'delete error number:'+cast(@delerr as nvarchar(8))
return @maxerr
ولی وقتی اونا از طریق سی شارپ اجرا میکنم خطا میده.