יום ראשון, 13 באפריל 2008

פקודת לולאה - GO

בעיה:
לפעמים יש לנו צורך להריץ פקודה מספר פעמים, אם זה לצורך הכנסת מידע מספר פעמים לצרכי בדיקות , ועם זה לצורך מבחני ביצועים.
בגרסאות הקודמות של SQL server הפתרון היחיד היה לכתוב לולאת while , אבל בגרסה החדשה של 2005 יש דרך קלה יותר לבצע זאת !!!

פתרון:
גם בגרסת 2000 וגם בגרסת 2005 הפקודה GO משמעותה הרצת הקוד ב- batch אחד.
אבל ב- SQL Server 2005 יש לנו את האפשרות להוסיף מספר לאחר המילה GO , וכך בעצם להחליט כמה פעמים על ה- SQL להריץ את ה- batch.
לדוגמא:
אם ברצונך ליצור סביבת בדיקות עם טבלה בעלת 1000 שורות , ניתן לכתוב כך:
CREATE TABLE dbo.TEST (ID INT IDENTITY (1,1), ROWID uniqueidentifier) GO INSERT INTO dbo.TEST (ROWID) VALUES (NEWID()) GO 1000
עוד דוגמא לשימוש בפקודת GO :
CREATE TABLE dbo.TEST (ID INT IDENTITY (1,1), ROWID uniqueidentifier) CREATE TABLE dbo.TEST2 (ID INT IDENTITY (1,1), ROWID uniqueidentifier) GO INSERT INTO dbo.TEST (ROWID) VALUES (NEWID()) INSERT INTO dbo.TEST2 (ROWID) VALUES (NEWID()) GO 1000
בגרסה הקודמת – SQL 2000 היינו צריכים כך :
CREATE TABLE dbo.TEST (ID INT IDENTITY (1,1), ROWID uniqueidentifier) CREATE TABLE dbo.TEST2 (ID INT IDENTITY (1,1), ROWID uniqueidentifier) GO DECLARE @counter INT SET @counter = 0 WHILE @counter < counter =" @counter">

זה לא ביג-דיל אבל לכתוב פשוט GO 1000 הרבה יותר קל....

אין תגובות: