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

نام تاپیک: فرق ; با GO در یک SP

  1. #1

    فرق ; با GO در یک SP

    سلام
    فرق بین ; با Go در یک SP چیه؟

  2. #2

    نقل قول: فرق ; با GO در یک SP

    کاراکتر ; نشانه پایان یک دستور SQL است. اما دستور GO تمامی دستورات قبل از خود را در قالب یک نسخه به مجری دستورات SQL ارسال می کند.
    در واقع دستورات SQL تا رسیدن به یک GO در حکم یک بلاک هستند و برای مثال شما نمی توانید متغیر تعریف شده را، بعد از دستور GO استفاده کنید.
    مثال : در کد زیر دستور print موجب تولید یک خطا خواهد شد.
    DECLARE @newvar VARCHAR(50)
    SELECT @newvar = 'Hello, World.'
    GO

    PRINT @newvar
    GO

  3. #3

    نقل قول: فرق ; با GO در یک SP

    فرق ; با Go تو این‌ه که ; پایان دستور رو نشون می‌ده ولی Go پایان batch رو. یعنی وقتی مفسر sql به Go می‌رسه batch رو تموم می‌کنه و کل batch رو به سمت server می‌فرسته. پس اگه متغییری در batch تعریف شده باشه با دستور Go از بین می‌ره ولی با ; میشه کماکان از اون استفاده کرد. این تو یک batch معمولی‌ه. اگه از SP منظورت Stored Procedure خودمونه که با استفاده از Go کل Stored Procedure تموم می‌شه.
    به کد زیر نگاه کن.

    create
    proc ___A as
    select
    1
    go
    select 2
    exec ___A
    go
    dropproc ___A

  4. #4

    نقل قول: فرق ; با GO در یک SP

    دقت کنید که GO از دستورات TSQL نیست. بعضی از نرم افزارها این عبارت رو درک میکنند. مثلا Query Analyzer یا Management Studio با رسیدن به این عبارت، دستورات قبلی رو به Compiler ارسال میکنند. به همین دلیل متغیرهای تعریف شده در یک بخش، در بخش بعدی شناخته نمیشن. اگر از ADO عبارت GO رو ارسال کنید، چون ADO اون رو درک نمیکنه لذا GO رو هم به SQL Server میفرسته و Error رخ میده.

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

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