View Full Version : چطور می شه اطلاعات جدیدی به یک جدول اضافه کرد و همان لحظه جزئیات آن اطلاعات را در جدو
kingwebs
یک شنبه 03 اردیبهشت 1385, 08:06 صبح
چطور می شه اطلاعات جدیدی به یک جدول اضافه کرد و همان لحظه جزئیات آن اطلاعات را در جدول دیگری قرار داد؟
majid_afra222
یک شنبه 03 اردیبهشت 1385, 08:32 صبح
سلام
برای یک سئوال یک تاپیک کافیه، برای اینکار باید از تریگر استفاده کنید.
hpx
یک شنبه 03 اردیبهشت 1385, 08:33 صبح
منظورتون master-detail هست یا .... ؟
Kamyar.Kimiyabeigi
یک شنبه 03 اردیبهشت 1385, 10:28 صبح
چطور می شه اطلاعات جدیدی به یک جدول اضافه کرد و همان لحظه جزئیات آن اطلاعات را در جدول دیگری قرار داد؟
دقیقا" بگین چه کاری میخواین انجام بدین تا بتونیم راهنماییتون کنیم. چون چند روش داره Trigger و یا Relation
baran110
سه شنبه 30 بهمن 1386, 10:34 صبح
چطور می شه اطلاعات جدیدی به یک جدول اضافه کرد و همان لحظه جزئیات آن اطلاعات را در جدول دیگری قرار داد؟
ببخشید.سوال من هم در همین مورد بود.من یک جدول کلی دارم و چند تا جدول زیر مجموعه که با هر بار افزودن رکورد به زیر مجموعه ها باید تمام اطلاعات آنها با یک فیلدکه مشخص میکند اطلاعات مربوط به کدام جدول بوده به جدول کلی نیز اضافه گردد. چون در استفاده از تریگر ها هم تازه کارم روش افزودن همزمان این اطلاعات را نمیدانم.اگر امکان دارد زودتر به سوالم پاسخ دهید که بسیار به آن نیاز دارم.:متفکر:
Elham_gh
سه شنبه 30 بهمن 1386, 10:44 صبح
ببخشید.سوال من هم در همین مورد بود.من یک جدول کلی دارم و چند تا جدول زیر مجموعه که با هر بار افزودن رکورد به زیر مجموعه ها باید تمام اطلاعات آنها با یک فیلدکه مشخص میکند اطلاعات مربوط به کدام جدول بوده به جدول کلی نیز اضافه گردد. چون در استفاده از تریگر ها هم تازه کارم روش افزودن همزمان این اطلاعات را نمیدانم.اگر امکان دارد زودتر به سوالم پاسخ دهید که بسیار به آن نیاز دارم.:متفکر:
لزوما نیازی به استفاده از trigger نیست. شما می توانید از Stored Procedure استفاده کنید.یک Transaction داخل آن قرار دهید و دستورات insert در چند جدول را در آن قرار دهید. سرعت این روش به مراتب بیشتر از trigger است. حالا اگه شما صورت مسئل خودتون رو واضح تر بیان کنید، بهتر میشه راهنمایی کرد
baran110
سه شنبه 30 بهمن 1386, 23:42 عصر
فرض کنید یک جدول name1با فیلدهای id1,name1,family1 و جدولی با فیلدهای id2,name2,family2به نام name2دارم.حالا می خوام با هر بار اضافه شدن رکورد به هر کدام از این جدولها در جدول سومی به نام nameو رکوردهایid,name,family,noe رکوردهای نام و فامیلی همراه با مثلا name1برای جدول name1و nam2برای جدولname2در فیلد noe اضافه شود.البته کمی روش کار کردم و با تریگر درست شد ولی اگر امکان دارد در مورد روشی که گفتید توضیح بدید و کمی بیشتر در مورد کارایی و مزیتهاش نسبت به تریگر بگید.
Elham_gh
چهارشنبه 01 اسفند 1386, 10:14 صبح
CREATE TABLE [dbo].[tbl1](
[ID1] [int] NULL,
[Name1] [nchar](10) NULL,
[Family1] [nchar](10) NULL
) ON [PRIMARY]
END
GO
CREATE TABLE [dbo].[tbl2](
[ID2] [int] NULL,
[Name2] [nchar](10) NULL,
[Family2] [nchar](10) NULL
) ON [PRIMARY]
END
GO
CREATE TABLE [dbo].[tbl12](
[ID] [int] NULL,
[Name] [nchar](10) NULL,
[Family] [nchar](10) NULL,
[noe] [bit] NULL
) ON [PRIMARY]
END
GO
CREATE PROCEDURE [dbo].[sptbl1_Insert]
@ID1 INT,
@Name1 NCHAR(10),
@Family1 NCHAR(10)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
INSERT INTO tbl1
VALUES(@ID1,@Name1,@Family1)
INSERT INTO dbo.tbl12
VALUES(@ID1,@Name1,@Family1,1)
COMMIT TRANSACTION
END
CREATE PROCEDURE [dbo].[sptbl2_Insert]
@ID2 INT,
@Name2 NCHAR(10),
@Family2 NCHAR(10)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
INSERT INTO tbl2
VALUES(@ID2,@Name2,@Family2)
INSERT INTO dbo.tbl12
VALUES(@ID2,@Name2,@Family2,0)
COMMIT TRANSACTION
END
و اما علت استفاده از Stored procedure به جایtrigger. من چند دلیل رو از چن جا کپی کردم ، با منابع:
Its best to avoid triggers at all costs. We've been having problems with them, especially when related tables each have triggers. Besides performance issues, the triggers weren't written properly. By the way several people have worked on the database. Data would be validated at the presentation layer. Upon saving information the triggers would fire and that would cascade to many tables. At the end you have information that's mixed up. And you don't know where to start debugging. You just have to be trigger-happy if you want to use triggers. Stay away from them.
As a rule, long transactions adversely affect performance. The longer the transaction, the longer locks are held. So, since triggers are part of the transaction that invoked them, doing things that can take a fair amount of time inside of a trigger is really discouraged
http://www.sqlservercentral.com/Forums/Topic128054-172-3.aspx#bm455674
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2776116&SiteID=1
اینم جالبه (&^%$%#)
http://www.tonymarston.net/php-mysql/stored-procedures-are-evil.html
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.