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

نام تاپیک: ارسال یک آرایه به داخل store procedure

  1. #1
    کاربر تازه وارد آواتار i-nostalgic
    تاریخ عضویت
    تیر 1391
    محل زندگی
    تهران
    پست
    63

    Question ارسال یک آرایه به داخل store procedure

    چگونه می توان یک آرایه را به داخل یک store procedure فرستاد و اینکه پارامتر آرایه در داخل store procedure چطور باید تعریف شود و چگونه می توان از آن استفاده کرد؟

  2. #2

    نقل قول: ارسال یک آرایه به داخل store procedure

    این سوال من هم هست.
    به جوابهایی هم رسیدم اما گیج شدم.
    من می خوام یک آرایه شامل آی دی های یک جدول رو با استور پروسیجر به اسکیوال بفرستم و در اونجا با پیمایش این آرایه به ازای هر عنصر اینزرت انجام بدم.
    ممنون میشم شسته و رفته و کامل یکی جواب بده.
    از XML هم نمی خوام استفاده کن

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    240

    نقل قول: ارسال یک آرایه به داخل store procedure

    با سلام

    شما برای اینکار باید ابتدا یک User defined table type را به مانند زیر ایجاد کنید.


    CREATE TYPE TVP AS TABLE
    (
    ID INT
    )


    سپس این User defined table type ساخته شده را به صورت پارامتر به پروسیجر به مانند زیر بیافزاید


    CREATE PROCEDURE SP
    @T TVP READONLY
    AS
    BEGIN
    SELECT * FROM @T
    END


    توجه داشته باشید پارامتر را فقط به صورت readonly می توانید تعریف کنید.

    با استفاده از این پارامتر داده ها را به صورت آرایه یا جدول می توانید به پروسیجر بفرستید.

    موفق باشید./

  4. #4

    نقل قول: ارسال یک آرایه به داخل store procedure

    سوالی که داشتم اینه که اگه قرار باشه با استفاده از این روش علاوه بر یک دیتاتیبل یک ستونه، چند متغیر دیگه که می خوام برای تمامی دیتاتیبل تکرار بشه همزمان اینزرت بشه باید چه کرد.
    می دونم می توان در همان سمت سی شارپ به دیتاتیبل اضافه کرد. اما می خوام سمت SQL انجام شود چون برنامه تحت شبکه و وب هست به صرفه نیست که این حجم ترافیک ایجاد شود.
    برای اینکه منظورم رو بهتر متوجه شوید به شبه کد که البته اشتباه است توجه کنید.

    create PROCEDURE ADDM
    (
    @MyTable MyType READONLY,
    @text nvarchar(max),
    @Datetime nvarchar(50)
    )
    AS
    INSERT INTO Users(UserID, Tex,DatTime)Values
    (SELECT UserID FROM @MyTable, @text,@Datetime)

    منظورم این است که دیتایتبل فرستاده شده یک فیلد باشد.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    240

    نقل قول: ارسال یک آرایه به داخل store procedure

    اگر منظورتون رو درست متوجه شده باشم، برای کاهش حجم user defined table type می خواهید ستون های تکراری رو به صورت پارامتر بفرستید، قطعا این کار صحیح تر خواهد بود.

    و البته درج به صورت زیر خواهد شد.


    INSERT INTO Users(UserID, Tex,DatTime)
    SELECT UserID, @text,@Datetime FROM @MyTable

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    290

    نقل قول: ارسال یک آرایه به داخل store procedure

    حالا این استور پروسجر را چطوری باید صدا زد؟ (البته پارامترهای من از نوع رشته ای است)
    CREATE TYPE TVP AS TABLE
    (
    Name varchar(50)
    )


    CREATE PROCEDURE SP
    @T TVP READONLY
    AS
    BEGIN
    SELECT * FROM @T
    END

    مثلا می خواهم این مقادیر را ارسال کنم:
    'Ali','Hasan','masood'
    EXEC SP @T=??????

  7. #7

    نقل قول: ارسال یک آرایه به داخل store procedure

    به این صورت


    declare @tmp TVP
    insert into @tmp values ('Ali'),('Hasan'),('masood')
    EXEC SP @T=@tmp


تاپیک های مشابه

  1. ارسال آرایه یا رشته ای به Stored Procedure
    نوشته شده توسط Davood_amega در بخش SQL Server
    پاسخ: 7
    آخرین پست: دوشنبه 29 شهریور 1389, 10:47 صبح
  2. سوال: چگونگی ارسال یک Generic List به Stored Procedure
    نوشته شده توسط hamide_kh در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: پنج شنبه 16 اردیبهشت 1389, 01:11 صبح
  3. سوال: ارسال تعداد نامشخص پارامتر به Stored Procedure ، فوری
    نوشته شده توسط farrokhpey.mahdi در بخش SQL Server
    پاسخ: 1
    آخرین پست: پنج شنبه 19 دی 1387, 20:48 عصر
  4. نحوه اجرای یک برنامه ویندوز از داخل store procedure
    نوشته شده توسط omid_delphi2 در بخش SQL Server
    پاسخ: 2
    آخرین پست: چهارشنبه 28 فروردین 1387, 13:09 عصر
  5. extended stored procedures و ارسال پیام در شبکه
    نوشته شده توسط Mahdavi در بخش SQL Server
    پاسخ: 6
    آخرین پست: سه شنبه 09 تیر 1383, 21:56 عصر

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

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