PDA

View Full Version : ساخت یک تریگر برای کپی گرفتن از اطلاعات یک جدول قبل از اپدیت



mohsen_metn
دوشنبه 17 مهر 1396, 11:28 صبح
سلام
من دو تا جدول دارم به صورت زیر

/****** Object: Table [dbo].[tbl_Cartable] Script Date: 10/24/2017 11:14:25 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tbl_Cartable](
[WorkID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[UserId] [numeric](18, 0) NOT NULL,
[WorkTitle] [nvarchar](200) NOT NULL,
[WorkDescription] [nvarchar](max) NOT NULL,
[WorkDate] [datetime2](7) NOT NULL,
[WorkType] [numeric](18, 0) NOT NULL,
[PatientID] [numeric](18, 0) NOT NULL,
CONSTRAINT [PK_tbl_Cartable] PRIMARY KEY CLUSTERED
(
[WorkID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO


و جدول دوم به صورت زیر
GO

/****** Object: Table [dbo].[tbl_CartableTran] Script Date: 10/24/2017 11:20:17 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tbl_CartableTran](
[WorkID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[UserId] [numeric](18, 0) NOT NULL,
[WorkTitle] [nvarchar](200) NOT NULL,
[WorkDescription] [nvarchar](max) NOT NULL,
[WorkDate] [datetime2](7) NOT NULL,
[WorkType] [numeric](18, 0) NOT NULL,
[PatientID] [numeric](18, 0) NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO


حالا میخوام یک تریگر بنویسم که وقتی جدول اول داره اپدیت میشه ، قبلش اون رکوردو تو جدول دومی ثبت کنم. در واقع یه سیستم لاگ هستش. فقط فیلد workdate به جای مقدار قبلی تاریخ حالو بگیره
لطفا کمک کنید

mohsen_metn
سه شنبه 18 مهر 1396, 08:21 صبح
لطفا کمک کنید

tooraj_azizi_1035
شنبه 22 مهر 1396, 10:47 صبح
سلام از Temporal Tables استفاده کن: https://docs.microsoft.com/en-us/sql/relational-databases/tables/temporal-tables