در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

علی

کاربرد دستور GO در SQL Server

ضمن عرض سلام و خسته نباشید خدمت همه دوستان:

یک سوال فنی در مورد sql server داشتم

و اونم ایکه همون طور که می دونید یکی از کاربردهای دستور Go در Sql Server این هستش که اگر بعد از Go یک عدد قرار دهیم به فرض مثال 10 قرار دهیم دستورات بعد از Go تا رسید به دستور GO بعدی 10 مرتبه تکرار می شوند می خواستم بدونم که چرا این کار رو ماکروسافت انجام داده و علت اصلیش چی مگه توی sql server حلقه نداریم پس چرا از این استفاده می شه؟

با تشکر

این سوال 3 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.

سلام

GO یک دستور Transact-SQL نیست؛

GO یک فرمان است که توسط سرویس دهی sqlcmd و osql و ویرایشگر SQL Server Management Studio شناخته شده است. حتی شما می توانید آن را تغییر هم بدهید

وب سایت توسینسو

دستور GO به عنوان یک جدا کننده (خاتمه دهنده یا terminator) گروهی کاربرد دارد

GO عدد

تا وقتی به دستور بعدی برسد کار دسته یا گروه را براساس عدد تعیین شده تکرار می کند دو مثال مهم و کاربردی

مثال 1 :

SELECT	*
FROM	Roles

Go 2

SELECT	*
FROM	Users

مثال 2 : برای درج موارد تکراری به عنوان یک حلقه عمل می کند که البته بیشتر بصورت پر کردن داده های تستی در یک جدول کاربرد دارد

INSERT INTO [dbo].[Test]
           (Title, Description)
     VALUES
           ('Test', 'Description')
GO 3

-- Result
-- Batch execution completed 3 times.
مجید محمدی سامانی
  • انتخاب شده به عنوان جواب توسط 2 نفر
علی

با سلام و تشکر بابت پاسخ شما

البته من درست متوجه نشدم! اینکه شما فرمودید جزء دستورات اصلی sql server نیست و جزء batch اسکریپت ها هست سوال من این هست که چرا وقتی کامپایلر sql server رو طراحی می کردن برای یک کار تکراری وقت گذاشتن و برای تکرار یا تست از همون حلقه هایی که جزء دستورات sql server هست استفاده نمی شه و پشت استفاده این کد برای تکرار چه تفکری بوده و اصلا چه فرقی داره با هم لطف کنید با مثلا توضیح بدید با تشکر

ماییم و نوای بینوایی بسم الله اگر حریف مایی!

سلام

اینکه مایکروسافت چه تفکری داشته و به دنبال چی بوده برای استفاده از Go به عنوان حلقه خیلی مشخص نیست

چون معمولا مایکروسافت اول یک چیزی ارائه می کند و بعد به دنبال تکمیل آن است (دستور یا ابزاری صرفا خاص خودش) و بعد از مدتی کاربردی که مد نظرش بوده را نمی دهد

اما در حال حاضر Go بیشترین کاربردش بعنوان جداکننده یا خاتمه دهنده می باشد

به عنوان مثالی دیگر

USE MyTestDB;  
GO  
DECLARE @MyMsg VARCHAR(50)  
SELECT @MyMsg = 'Hello, World.'  
GO 
-- @MyMsg is not valid after this GO ends the batch.  
 
PRINT @MyMsg  

در مثال فوق متغیر @MyMsg بعد از Go قابل تشخیص نیست و خطای زیر را می دهد و این همان معنی خاتمه دهنده (batch : برای یکسری دستورات یا دسته) را می دهد

Must declare the scalar variable "@MyMsg".

ولی اگر GO را به بعد از PRINT @MyMsg جابجا کنیم بدون خطا اجرا می شود

همانطور که در عکس بالا (پست اول) می بینید شما می توانید جدا کننده را تغییر هم بدهید

Tools > Options > Query Execution > SQL Server

مجید محمدی سامانی
  • انتخاب شده به عنوان جواب توسط 1 نفر
علی

با سلام و عرض خسته نباشید

ضمن تشکر از پاسخ شما در صورتی که تونستید اطلاعات بیشتری در این مورد به دست بیاورید لطفا در همین پست ارسال کنید

با تشکر

ماییم و نوای بینوایی بسم الله اگر حریف مایی!
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....