با سلام و خسته نباشید خدمت شما
من یک سئوال داشتم به کوئری زیر توجه کنید اگر بیشتر از 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
این پست در تاریخ {{ dateString(new Date(post.deleteDate)) }} توسط {{ post.deletedByUser }} حذف شده است.
دلیل حذف: {{ post.deleteReason ?? 'نامشخص' }}
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود