У меня есть хранимая процедура, которую я хотел бы использовать в Web API (C #).Я должен что-то пропустить, так как я не получаю никакого результата ни в Complex Types
(в модели EF), ни в Functions Imports
(я вижу хранимую процедуру в Functions Imports
, но она не возвращает никакого значения, как ожидалось).
Это моя хранимая процедура (я стер некоторые не важные данные, чтобы сделать их короче)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
@main_id BIGINT,
@id_ze_mish BIGINT,
@id_nof BIGINT,
@loggedInUser VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION [TransactionUniteSingles]
OPEN SYMMETRIC KEY io_key DECRYPTION BY CERTIFICATE chn_cert
-- Step 1
UPDATE [dbo].[t1]
SET deleted = 1,
WHERE id_nof = @id_nof
AND id_ze = @id_ze_mish
-- Step 2
UPDATE [dbo].[t_no_nir]
SET update_stamp = GETDATE(),
[user_name] = @loggedInUser
WHERE id_nof = @id_nof
AND ms_zehut_mazmin = @id_ze_mish
-- Step 3
CREATE TABLE #mainPrice
(
id INT,
fName VARCHAR(20),
lName VARCHAR(20)
)
INSERT INTO #mainPrice
EXEC [dbo].[io_sp_get_some_data_foo] @id
IF(EXISTS(select * from #mainPrice))
BEGIN
DECLARE @totalAmount INT;
SELECT @totalAmount = (main_price + price_tip + price_visa)
FROM #mainPrice
DROP TABLE #mainPrice
UPDATE [dbo].[t_4]
SET amount = @totalAmount,
update_stamp = GETDATE(),
[user_name] = @loggedInUser
WHERE id_nof = @id_nof
AND id = @main_id
CLOSE ALL SYMMETRIC KEYS
COMMIT TRANSACTION [TransactionUniteSingles]
SELECT CAST(1 as BIT) as 'Status', 'Succeeded' as 'ReturnMessage'
END
ELSE
BEGIN
SELECT CAST(0 as BIT) as 'Status', 'ADMIN - Unite Singles as 'ReturnMessage'
END
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION [TransactionUniteSingles]
SELECT CAST(0 as BIT) as 'Status', 'ADMIN - Unite Singles' as 'ReturnMessage'
END CATCH
END
Обратите внимание - при запуске хранимой процедуры как отдельной, она работает отлично ивернуть то, что ожидалось.