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

نام تاپیک: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرج
    پست
    495

    اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    سلام لطفا راهنمایی کنید چگونه می توانم یک دستور Select را که به صورت رشته است با دستور exec اجرا کنم و خروجی بگیرم مانند کد زیر:

    Declare @Param as nvarchar
    Set @param='Ware'
    Exec sp-executsql 'Select ID From' + @Param

    می خواهم وقتی این دستورات را درون یک Function نوشتم هنگامی که آن را صدا می زنم خروجی فیلد ID جدول Ware باشد
    فعلا که وقتی دستور exec را در تابع می نویسم و بعد تابع را صدا می زنم خطا می دهد که نمی تواند این کار را انجام دهد لطفا راهنمایی کنید

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    تهران
    سن
    47
    پست
    182

    نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    فکر کنم مشکلش یک Space باشد. بعد از الحاق پارامتر @Param کلمه From به Ware می چسبد.

  3. #3

    نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    سلام.
    به جز موردی که آقای عمرانی فرمودند باید پیغام خطا رو اینجا قرار بدید تا بشه دقیق راهنمایی کرد.
    الان دستور sp_executesql شما هم اشتباه است.چون به جای '_' از '-' استفاده کردید.

  4. #4
    کاربر دائمی آواتار Galawij
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شاره که م سنه
    پست
    711

    نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    سلام دوست من
    شما اگه اسم جدولتون مشخصه که دیگه متغیر نمی خواهد، ولی اگر بخواهید اسم جدول را به عنوان پارامتر ورودی ارسال کنید به این صورت عمل کنید:

    CREATE PROCEDURE [dbo].[YourSPName](@TabelName NVARCHAR(128))
    AS
    BEGIN
    DECLARE @SelectString NVARCHAR(MAX)
    Set @SelectString='SELECT * FROM '+ @TabelName)
    EXEC (@SelectString) / EXECUTE SP_EXECUTESQL @SelectString
    END
    آخرین ویرایش به وسیله Galawij : دوشنبه 05 اردیبهشت 1390 در 08:47 صبح

  5. #5
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    سلام
    درون Function نمی توان Dynamic SQL بکار برد

  6. #6

    نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    اگر تعداد جداولی که ممکنه به عنوان متغیر گرفته بشن خیلی محدود باشه می تونید از Dynamic بودن کوئری صرف نظر کنید. به این شکل:
    SELECT ID FROM
    (SELECT ID, 'Ware' AS TableName FROM Ware
    UNION
    SELECT ID, 'Others' FROM Other) AS D
    WHERE TableName = @parm;
    وبلاگ من (Advanced SQL Querying)

  7. #7
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرج
    پست
    495

    نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی

    سلام از جواب همه دوستان ممنون حق با جناب askaffash بود جواب اصلی رو پیدا کردم سر فرصت می ذارم دوستان استفاده کنند

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

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