PDA

View Full Version : insert به شرط درست بودن دیگر مقادیر



amirebm
یک شنبه 08 اسفند 1389, 22:58 عصر
سلام

من یه پروسیجر insert دارم توی جدول اعضا،که خوب با insert های معمولی یه کم فرق داره.

منظورم اینه که توی جدول اعضا کد شهر،کد سطح تصحیلات و کد رشته ثبت میشه(همون 3 متغیر که جدا تعریف شده)

execute میشه اما توی برنامه که ازش استفاده میکنم اجرا نمیشه.

اگه کدم مشکلی داره لطفا راهنمایی کنید




set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




ALTER PROCEDURE [dbo].[Add_To_Member] @Mem_Name nvarchar (50),
@Mem_Family nvarchar (50),
@Mem_FName nvarchar (50),
@Mem_ID nchar(10),
@Mem_PubCode nchar(10),
@Mem_Tel nchar (11),
@Mem_Mobile nchar (12),
@Mem_CityCode int,
@Mem_Adress nvarchar (100),
@Mem_Date nchar(10),
@Mem_Study int,
@Mem_Major int,
@Mem_Revival nchar (1)=1,
@Mem_Sex nchar (1),
@Mem_Birthday nchar (10),
@Mem_Marriage nchar(1),
@Mem_Email nchar (30)=null

AS

begin

declare @City_Name nvarchar(50),@Stu_Segment nvarchar(50),@Major_Name nvarchar(50)


set @Mem_CityCode=(select City_Code from City where City_Name=@City_Name)

set @Mem_Study=(select Stu_Code from Study where Stu_Segment=@Stu_Segment)

set @Mem_Major=(select Major_Code from Major where Major_Name=@Major_Name)




insert into MEMBER (Mem_Name ,Mem_Family,Mem_FName,Mem_ID,Mem_PubCode,Mem_Tel

,Mem_Mobile,Mem_CityCode,Mem_Adress ,Mem_Date,Mem_Study,

Mem_Major,Mem_Revival,Mem_Sex,Mem_Birthday,Mem_Mar riage,Mem_Email)

values(@Mem_Name,@Mem_Family ,@Mem_FName,@Mem_ID,@Mem_PubCode,@Mem_Tel,@Mem_Mob ile

,@Mem_CityCode,@Mem_Adress,@Mem_Date ,@Mem_Study,@Mem_Major,@Mem_Revival,

@Mem_Sex,@Mem_Birthday,@Mem_Marriage,@Mem_Marriage )



end

Reza_Yarahmadi
یک شنبه 08 اسفند 1389, 23:17 عصر
شما 3 پارامتر رو بعد از تعربف توی شرط جستجو آوردید.
یا باید به جای جسجتو بر اساس نام ، شرط رو روی کد بذارید یا اینکه به جای اینکه کد رو از ورودی بگیرید ، نام رو بگیرید و کدش رو توی جدول Member ذخیره کنید.

amirebm
یک شنبه 08 اسفند 1389, 23:37 عصر
متوجه منظورتون نشدم،لطفا مثال بزنید یا اگه جاییش غلطه ذکر کنین.

ببینید من از ورودی 3 تا نام میگیرم و کد هر 3 تا رو با اون 3 تا select به 3 تا پارامترم که قراره 3 تا از value های member باشند قرار دادم.



declare @City_Name nvarchar(50),@Stu_Segment nvarchar(50),@Major_Name nvarchar(50)


set @Mem_CityCode=(select City_Code from City where City_Name=@City_Name)

set @Mem_Study=(select Stu_Code from Study where Stu_Segment=@Stu_Segment)

set @Mem_Major=(select Major_Code from Major where Major_Name=@Major_Name)

Reza_Yarahmadi
دوشنبه 09 اسفند 1389, 10:51 صبح
طبق توضیحات خودتون باید کدتون بصورت زیر تغییر کنه.
ALTER PROCEDURE [dbo].[Add_To_Member]
@Mem_Name nvarchar(50),
@Mem_Family nvarchar(50),
@Mem_FName nvarchar(50),
@Mem_ID nchar(10),
@Mem_PubCode nchar(10),
@Mem_Tel nchar(11),
@Mem_Mobile nchar(12),
@City_Name nvarchar(50),
@Mem_Adress nvarchar(100),
@Mem_Date nchar(10),
@Stu_Segment nvarchar(50),
@Major_Name nvarchar(50),
@Mem_Revival nchar(1) = 1,
@Mem_Sex nchar(1),
@Mem_Birthday nchar(10),
@Mem_Marriage nchar(1),
@Mem_Email nchar(30) = null
AS
Begin
Declare @Mem_CityCode int,
@Mem_Study int,
@Mem_Major int

Select @Mem_CityCode = City_Code From City Where City_Name = @City_Name
Select @Mem_Study = Stu_Code From Study Where Stu_Segment = @Stu_Segment
Select @Mem_Major = Major_Code From Major Where Major_Name = @Major_Name

Insert Into MEMBER (
Mem_Name, Mem_Family,
Mem_FName, Mem_ID,
Mem_PubCode, Mem_Tel,
Mem_Mobile, Mem_CityCode,
Mem_Adress, Mem_Date,
Mem_Study, Mem_Major,
Mem_Revival, Mem_Sex,
Mem_Birthday, Mem_Marriage,
Mem_Email)
Values(
@Mem_Name, @Mem_Family,
@Mem_FName, @Mem_ID,
@Mem_PubCode, @Mem_Tel,
@Mem_Mobile, @Mem_CityCode,
@Mem_Adress, @Mem_Date,
@Mem_Study, @Mem_Major,
@Mem_Revival, @Mem_Sex,
@Mem_Birthday, @Mem_Marriage,
@Mem_Email)
End