а) Ваш параметр @intOutputParameter
не объявлен как выходной; Применение:
CREATE PROCEDURE abc (
@intA int
,@intB int
,@intOutputParameter int OUTPUT
)
AS
б) Вы уверены, что в таблице tbluser
есть что-то вроде id int IDENTITY(1,1)
?
в) Что с begin end
?
UPDATE :
Вы можете решить эту проблему, используя try-catch внутри процедуры, например:
ALTER PROCEDURE abc (
@intA int
,@intB int
,@intOutputParameter int OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
BEGIN TRY
/*where B is foregin key */
INSERT INTO tbluser ( A, B ) VALUES ( @intA, @intB )
SET @intOutputParameter = IDENT_CURRENT('tbluser')
END TRY
BEGIN CATCH
SET @intOutputParameter = -1
END CATCH
END
Это вернет -1 в случае ошибки, поэтому, если ваши идентификаторы таблицы> 1, приложение Java может различить успешную вставку и ошибку.