我有以下存储过程,它确实会产生在 Management Studio 2008 下指定的错误。但会在 Management Studio 2012 下产生输出?有任何想法吗?
ALTER PROCEDURE SPU_IsoEmailUpdate
@isoNumber char(10),
@newEmailAddress varchar(40),
@userName varchar(50),
@oldEmailAddress varchar(40) output
AS
DECLARE @oldEmail varchar(40)
BEGIN TRANSACTION
SELECT @oldEmail = email FROM iso WHERE isonum = @isoNumber
SELECT @oldEmailAddress = @oldEmail
INSERT INTO IsoEmailHistory (isonum, oldemailaddress, newemailaddress, updatedate, username)
VALUES(@isoNumber, @oldEmail, @newEmailAddress, GETDATE(), @userName)
IF @@ERROR <> 0
BEGIN
ROLLBACK
RAISERROR('Error inserting new Email Address.', 16, 1)
RETURN
END
IF EXISTS (SELECT isonum FROM iso WHERE isonum = @isoNumber)
BEGIN
UPDATE iso SET email = @newEmailAddress
WHERE isonum = @isoNumber
END
IF @@ERROR <> 0
BEGIN
ROLLBACK
RAISERROR ('Error updating email Address.', 16, 1)
RETURN
END
COMMIT TRANSACTION
这就是我执行它的方式:
declare @oldEmailValue varchar(40)
exec spu_isoemailupdate '222222222', 'testing@newemail.com', 'username', @oldEmailValue output
select @oldEmailValue 'OldEmail'
但似乎我在这里做错了,因为我收到以下错误:
“过程或函数 SPU_IsoEmailUpdate 指定的参数太多。”
我究竟做错了什么?谢谢