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

نام تاپیک: استفاده از stored procedure در یک View

  1. #1

    استفاده از stored procedure در یک View

    سلام
    من یک stored procedure با چند پارامتر دارم که نتیجه اجرای آن یک جدول است .
    حال می خواهم این stored procedure را در یک View استفاده کنم. چگونه می تونم اینکار را انجام بدهم. لطفا راهنمایی کنید.
    در ضمن این stored procedure من، encription میباشد .

  2. #2

    نقل قول: استفاده از stored procedure در یک View

    نقل قول نوشته شده توسط hsalimi مشاهده تاپیک
    سلام
    من یک stored procedure با چند پارامتر دارم که نتیجه اجرای آن یک جدول است .
    حال می خواهم این stored procedure را در یک View استفاده کنم. چگونه می تونم اینکار را انجام بدهم. لطفا راهنمایی کنید.
    در ضمن این stored procedure من، encription میباشد .
    سلام،
    امکان استفاده از sp در view وجود نداره. view تنها یک شی ای هست که می تونه یک دستور select و یا cte رو در خودش نگهداری کنه.
    وبلاگ من (Advanced SQL Querying)

  3. #3

    نقل قول: استفاده از stored procedure در یک View

    سلام ، خوب آیا می تونیم خروجی Stored procedure را در یک جدول موقت ریخته و جدول را در view استفاده کنیم. این جدول هم خودش ایجاد بشه و احتیاج به ایجاد کردنش نباشد.
    با تشکر

  4. #4

    نقل قول: استفاده از stored procedure در یک View

    نقل قول نوشته شده توسط hsalimi مشاهده تاپیک
    سلام ، خوب آیا می تونیم خروجی Stored procedure را در یک جدول موقت ریخته و جدول را در view استفاده کنیم. این جدول هم خودش ایجاد بشه و احتیاج به ایجاد کردنش نباشد.

    با تشکر
    سلام،
    هر نرم افزار RDBMS ای قواعد دستوری خاص خودش را دارد. شما اگر این سوال را در تالار SQL Server مطرح می کردید من در جواب به این سوال "آیا می توانیم خروجی SP را در یک جدول موقت بریزیم؟" می گفتم بله می شود. با این syntax
    INSERT INTO #temporary_table EXECUTE your_proceduer

    ولی اینکه آیا می شود View ای ایجاد کرد که بر اساس یک جدول موقت باشد فکر نمی کنم این امکان وجود داشته باشد.

    اگر از دستور SELECT INTO استفاده کنید می توانید یک جدول دیگری بر اساس جدول مورد نظر ایجاد کنید که دقیقا شامل همان ساختار باشد.
    SELECT * INTO #temporary_table FROM your_table_name_here WHERE 1=2
    وبلاگ من (Advanced SQL Querying)

  5. #5

    نقل قول: استفاده از stored procedure در یک View

    با تشکر از جنابعالی
    من دستورات شما را استفاده کردم اما جدول موقت نمی سازه ، وپیغام خطا میدهد.
    Invalid object name '#temporary_table'.

    لابد باید تو تنظیمات sql server تغییراتی بدهم ، یا باید برای جدول موقت اسمی انتخاب کنم و از قبل فیلد هاش را تعریف کنم. اینطور نیست؟ واگر جدول موقت را ساخت کجا باید پیدا یش کنم؟.

  6. #6

    نقل قول: استفاده از stored procedure در یک View

    چه دستوری را ایجاد کردین که این پیغام داده شد؟ SELECT گرفتین بعد از SELECT INTO ؟
    چداول موقت همگی در بانک tempdb ذخیره میشن در پوشه ی temprary tables .

    حالا اینبار قبل از SELECT گرفتن از داده های جدول دستور USE tempdb هم بنویسید.
    وبلاگ من (Advanced SQL Querying)

  7. #7

    نقل قول: استفاده از stored procedure در یک View

    من دستور زیر را اجرا کردم:

    INSERT INTO #temporary_table EXECUTE SPamarhales
    پیغام خطا بالا را داد. بعد یک جدول یر اساس خروجی stored procedure ایجاد کردم و دستور زیر را اجرا کردم .جواب داد:
    INSERT INTO myTable EXECUTE SPamarhales
    و دستور زیر را که اجرا کردم:
    SELECT * INTO #temporary_table FROM table1
    جدول موقت را در دیتابیس مربوطه ساخت .
    حال بنظر شما چرا دستور اولی جدول موقت ایجاد نمی کنه؟
    راستی این جدول موقت تا کی میمونه و چطور می تونیم حذفش کنیم؟



  8. #8

    نقل قول: استفاده از stored procedure در یک View

    در دستور اول پیغام invalid object name داده میشه به این دلیل که اون جدول وقت وجود خارجی نداره که به خواهیم داخلش سطرهایی را درج کنیم.
    دستور SELECT INTO ابتدا یک جدول ایجاد می کند سپس نتیجه ی SELECT را داخل آن جدول درج می کند. یعنی نباید قبلا جدولی با آن نام وجود داشته باشد، چون نمی توانیم دو جدول با یک نام ایجاد کنیم.

    پس ابتدا باید جدول موقت ایجاد شود سپس از INSERT INTO #temp EXEC استفاده کنید.

    جداول موقت را مثل جداول دیگه میشه حذف کرد یعنی با DROP.
    راجب طول حیات این جداول من مطالب Book Online را جالب دیدم:


    There are two types of temporary tables: local and global. Local temporary tables are visible only to their creators during the same connection to an instance of SQL Server as when the tables were first created or referenced. Local temporary tables are deleted after the user disconnects from the instance of SQL Server. Global temporary tables are visible to any user and any connection after they are created, and are deleted when all users that are referencing the table disconnect from the instance of SQL Server.


    بستگی داره از چه نوع temp ای استفاده کرده باشین اگر local باشه زمانی جدول حذف میشه که کاربری که آن را ایجاد کرده یا استفاده می کرده از اسکیول Disconect بشه.
    وبلاگ من (Advanced SQL Querying)

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

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