استفاده از RAISERROR در trigger

بپرسید

0

{{ digitTrunc(content.likes) }}

با سلام و خسته نباشید خدمت شما

من یک سئوال داشتم به کوئری زیر توجه کنید اگر بیشتر از 1 رکورد delete کنیم ارور می دهد و آن رکورد را delete نمی کند اما اگر 1 رکورد را delete کنیم دیگر ارور نمی دهد و آن رکورد را حذف می کند حالا سئوال من اینجا هست که وقتی متغیر count مساوی با 1 می شود ارور تولید نمی شود توسط RAISERROR و وقتی که متغیر count بزرگتر یا مساوی با 2 می شود دستور RAISERROR ارور تولید می کند چرا به این صورت هست آیا @@ROWCOUNT وقتی عددش بزرگتر از 2 می شود ارور تولید می شود توسط RAISERROR یعنی مثلا @@ROWCOUNT در ارورهای RAISERROR تعریف شده است که مثلا اگر عدد بزرگتر از 2 شد ارور تولید کند با 16,1 چون من RAISERROR را بر روی 11,1 می گذارم ارور تولید نمی کند می شود در این باره بیشتر به من توضیح دهید سپاسگزار می شوم.

alter TRIGGER delete1
ON dbo.EmployeeTriggerTest 
FOR delete AS 
BEGIN
     DECLARE @Count int
     SET @Count = @@ROWCOUNT;
         
     IF @Count >= (SELECT SUM(row_count)
         FROM sys.dm_db_partition_stats 
         WHERE OBJECT_ID = OBJECT_ID('dbo.EmployeeTriggerTest' ) 
         AND index_id = 1)
     BEGIN
         RAISERROR('Cannot update all rows',16,1) 
         ROLLBACK TRANSACTION
         RETURN;
     END
END
GO

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

پاسخ ها به این سوال

پاسخ ها به این سوال

{{ digitTrunc(post.likes) }}

این پست در تاریخ {{ dateString(new Date(post.deleteDate)) }} توسط {{ post.deletedByUser }} حذف شده است.

دلیل حذف: {{ post.deleteReason ?? 'نامشخص' }}

{{ err }}
{{ post.userAchivements.rhodiumAchievements }}
{{ post.userAchivements.platinumAchievements }}
{{ post.userAchivements.goldAchievements }}
{{ post.userAchivements.silverAchievements }}
{{ post.userAchivements.bronzeAchievements }}
{{ timeSince(new Date(post.date)) }} قبل

برای ثبت پاسخ خود در وب سایت وارد حساب کاربری خود شوید
قابلیت ارسال مطلب توسط مدیریت سایت غیر فعال شده است