sepehrforough
سه شنبه 02 اردیبهشت 1393, 18: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
شرط وجود داشتن چک نشده ، اگه این شرط چک بشه مساله نداره ها ، ولی خب آخه میشه ایمیل های مختلف با عنواین مختلف آخه به وجود بیاد
میشه منو راهنمایی کنید؟
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 رو به چند نفر ارسال کنم ، دوباره ایمیل ساخته میشه ، نمیخوام ساخته بشه
فقط میخوام همون ایمیل به چند تا کاربر فرستاده بشه در حالی که هر دو حالتش درسته ، یعنی هم میشه ایمیل ساخته بشه و به شخص فرستاده بشه ،حتی اگه عنوان و محتوا و فرستنده یکی باشه ، هم میشه که دقیقا یک ایمیل به چند نفر فرستاده بشه ، یعنی آیدی همون ایمیل تو حدول دومی بیاد
این مشکل به خاطر این به وجود میاد که تو اینزرت کردن تو جدول
شرط وجود داشتن چک نشده ، اگه این شرط چک بشه مساله نداره ها ، ولی خب آخه میشه ایمیل های مختلف با عنواین مختلف آخه به وجود بیاد
میشه منو راهنمایی کنید؟