نمایش نتایج 1 تا 5 از 5

نام تاپیک: تبدیل پراسیجر داینامیک insertبه پراسیجر update

  1. #1

    تبدیل پراسیجر داینامیک insertبه پراسیجر update

    با سلام
    لطفا بفرمایید چگونه میتوانم پراسیجر داینامیک زیر را که جهت insert هست به پراسیجر داینامیک جهت update تبدیل کنم؟
    فوریه لطفا کمک
    تمام جدولها شامل 2 فیلد هستند
    یکی بصورت اتونامبر و دیگری ورکر
    ما میخواهیم نام جدول و فیلد ورکر را داینامیک کنیم یعنی نام جدول با کدنویسی انتخاب میشود حالا باید فیلد را هم بتوانیم ویرایش کنیم
    همانطور هم که میبینید برای نام جدول مشکلی نیست
    از اینجا به بعد رو نمیتونم
    باتشکر

    ALTER PROCEDURE InsertTable
    (
    @PrmTblName nvarchar(50),
    @PrmFvalue nvarchar(50)
    )
    AS
    DECLARE @InsertString nvarchar(100)

    -- Build the INSERT statement.
    SET @InsertString = 'INSERT INTO ' +
    @PrmTblName +
    ' values (@Fvalue)'


    EXEC sp_executesql @InsertString,
    N'@Fvalue varchar(50)',
    @PrmFvalue


  2. #2
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276

    نقل قول: تبدیل پراسیجر داینامیک insertبه پراسیجر update


    ALTER PROCEDURE UpdateTable
    (
    @PrmTblName nvarchar(50),
    @PrmFvalue nvarchar(50)
    )
    AS
    DECLARE @InsertString nvarchar(100)

    -- Build the INSERT statement.
    SET @InsertString = 'UPDATE ' +
    @PrmTblName +
    ' SET FldName = @Fvalue'


    EXEC sp_executesql @InsertString,
    N'@Fvalue varchar(50)',
    @PrmFvalue

  3. #3

    نقل قول: تبدیل پراسیجر داینامیک insertبه پراسیجر update

    نقل قول نوشته شده توسط Kamyar.Kimiyabeigi مشاهده تاپیک

    ALTER PROCEDURE UpdateTable
    (
    @PrmTblName nvarchar(50),
    @PrmFvalue nvarchar(50)
    )
    AS
    DECLARE @InsertString nvarchar(100)

    -- Build the INSERT statement.
    SET @InsertString = 'UPDATE ' +
    @PrmTblName +
    ' SET FldName = @Fvalue'


    EXEC sp_executesql @InsertString,
    N'@Fvalue varchar(50)',
    @PrmFvalue
    الان updateشما whereنداره
    البته چند مدل شبیه به این رو هم امتحان کردم ولی نشد مثل کد زیر:
    ALTER PROCEDURE UpdateTable
    (
    @PrmTblName nvarchar(50),
    @PrmFcode int,
    @PrmFvalue nvarchar(50)
    )
    AS
    DECLARE @UpdateString nvarchar(100)

    -- Build the UPDATE statement.
    SET @UpdateString = 'UPDATE ' +
    @PrmTblName +
    'SET PrmFvalue=@PrmFvalue'+
    +'WHERE PrmFcode=@PrmFcode'


    EXEC sp_executesql @UpdateString,
    N'@Fvalue varchar(50)',
    @PrmFvalue

  4. #4
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276

    نقل قول: تبدیل پراسیجر داینامیک insertبه پراسیجر update

    ببخشيد حق با شماست من اشتباه نوشتم تيكه صحيح شده رو دوباره ميذارم

    SET @InsertString = 'UPDATE ' +
    @PrmTblName +
    ' SET FldName = ' + @Fvalue +
    ' WHERE FldName = ' + @FldValue2

  5. #5

    نقل قول: تبدیل پراسیجر داینامیک insertبه پراسیجر update

    با سلام به همه دوستان
    یه استاد سی شارپ دارم که این مسئله رو حل کرد
    جهت توضیح باید بگم که از این پراسیجر داینامیک میشه برای جدولهایی که 2 تا فیلد دارند استفاده کرد
    برای این پراسیجر 5 متغیر داریم که یکی برای نام جدول هست 2 تا برای نام فیلدها و 2 تا برای مقدار فیلدها
    براحتی میتوان با تعریف متغیر در برنامه از این پراسیجر استفاده کرد
    امیدوارم مورد استفاده قرار بگیره:
    ALTER PROCEDURE dbo.UpdateTable
    (
    @PrmTblName nvarchar(50),
    @PrmFieldName nvarchar(50),
    @PrmFieldCode nvarchar(50),
    @PrmvalueCode int,
    @PrmvalueName nvarchar(50)
    )
    AS
    DECLARE @UpdateString nvarchar(100)



    -- Build the UPDATE statement.
    SET @UpdateString = 'Update ' +
    @PrmTblName + ' set '+@PrmFieldName+'=@valueName where '+@PrmFieldCode+'=@codevalue'

    EXEC sp_executesql @UpdateString,
    N'@valueName varchar(50),@codevalue int',
    @PrmvalueName,@prmvaluecode



قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •