Я создал SQL-запрос w/c, имеет оператор Delete
, но, к сожалению, инструкция Delete
кажется не выполняющей. Что не так с моей операцией SQL.SQL Server не выполняет команду Delete
Вот мой код:
BEGIN TRAN
BEGIN TRY
DECLARE @Mid VARCHAR(100) = '100303000'
DECLARE @Cnt INT
DECLARE @ScHeader TABLE
(
ScHeaderId UNIQUEIDENTIFIER
)
declare @SCHeaderId uniqueidentifier
-- get ids to be deleted
INSERT INTO @ScHeader(ScHeaderId)
SELECT scd.ServiceChargesId
FROM ServiceChargeDetails scd
INNER JOIN ServiceCharges sc ON scd.ServiceChargesId = sc.ServiceChargesId
INNER JOIN CreditCardMID cc ON cc.CreditCardMIDId = scd.CreditCardMIDId
WHERE cc.MID = @Mid;
/*
do some other task here Related to @ScHeaderId
*/
SELECT @Cnt = COUNT(*) FROM CreditCardMID WHERE MID = @Mid;
Print 'Count before delete ' + Cast(@Cnt as VARCHAR(10))
PRINT 'Deleting Mid ' + @Mid;
DELETE FROM CreditCardMID WHERE MID = @Mid; -- not executed
PRINT 'Done deleting mid '; -- -- not executed
SELECT @Cnt = COUNT(*) FROM CreditCardMID WHERE MID = @Mid;-- not executed
Print 'Count after delete ' + Cast(@Cnt as VARCHAR(10)) -- not executed
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
PRINT @@ERROR
END CATCH
Вот результат из окна сообщений:
Возможно, попробуйте напечатать 'ERROR_MESSAGE()' или 'ERROR_NUMBER()' в вашем 'CATCH', чтобы узнать фактическую ошибку: [Использование TRY ... CATCH в Transact-SQL] (https://technet.microsoft.com/en-us/library/ms179296%28v= sql.105% 29.aspx) – har07
Ищите триггер на таблице 'CreditCardMID' –
, что триггер стоил мне времени. спасибо A –