PDA

View Full Version : ایجاد پروسیچر برای جانکشن تیبل



sepehrforough
سه شنبه 02 اردیبهشت 1393, 17:07 عصر
سلام ، من دو تا جدول دارم به صورت زیر

Email table



Id

int



Subject

nvarchar



Content

nvarchar



FromUserEmail

varchar





EmailToUser Table



Id

bigint



EmailId

int



UserId

uniqueidentifier









فقط میخوام که هر ایمیلی که فرستاده میشه به کاربر یا کاربران ، تو جدول ذخیره بشه
و اینکه دوتا پروسیجر نوشتم


که درست عمل میکنن واقعا
ALTER Proc [dbo].[USP_Email_Insert]
@EmailSubject nvarchar(200),
@Emailcontent nvarchar(max),
@FromUser varchar(100)
as
insert into Email(EmailSubject,EmailContent,FromUser)
values (@EmailSubject ,@Emailcontent,@FromUser)

__________________________________________________ __________



create proc USP_EmailToUser_Insert
@EmailSubject nvarchar(200),
@Emailcontent nvarchar(max),
@FromUser varchar(100),
@UserName nvarchar(200)
as
declare @EmailId bigint
declare @UserEmail nvarchar(256)
declare @User_Id uniqueidentifier
select @User_Id=UserId from aspnet_Users where UserName=@UserName
select @UserEmail=Email from aspnet_Membership where UserId=@User_Id
Exec USP_Email_Insert @EmailSubject,@Emailcontent,@FromUser
select @EmailId=Id from Email where EmailSubject=@EmailSubject
insert into EmailToUser(Email_Id,Usser_Id)
values (@EmailId,@User_Id)
ا
این دوتا پروسیجر همزمان اجرا میشن داخل هم که البته من اینو از خودم در آوردم نمیدونم کلا درست هست یا نه ، ولی خب درست اجرا میشه ، ولی مساله ایتجاست که





که مثلا وقتی میخواد ایمیلی با آیدی 2 رو به چند نفر ارسال کنم ، دوباره ایمیل ساخته میشه ، نمیخوام ساخته بشه

فقط میخوام همون ایمیل به چند تا کاربر فرستاده بشه در حالی که هر دو حالتش درسته ، یعنی هم میشه ایمیل ساخته بشه و به شخص فرستاده بشه ،حتی اگه عنوان و محتوا و فرستنده یکی باشه ، هم میشه که دقیقا یک ایمیل به چند نفر فرستاده بشه ، یعنی آیدی همون ایمیل تو حدول دومی بیاد


این مشکل به خاطر این به وجود میاد که تو اینزرت کردن تو جدول
Email
شرط وجود داشتن چک نشده ، اگه این شرط چک بشه مساله نداره ها ، ولی خب آخه میشه ایمیل های مختلف با عنواین مختلف آخه به وجود بیاد

میشه منو راهنمایی کنید؟