Andras

Software Architect - Red Gate Software

The GO command can have a parameter?

Published Monday, September 24, 2007 1:57 PM

I have mixed feelings about the GO command. It is not a T-SQL statement, it is just something that Management Studio and the other SQL Server tools understand as a batch separator command. Indeed, you can change it to whatever you wish in Management Studio under Tools->Options->Query Execution->SQL Server->General->Batch separator.
So you can write queries like

SELECT * FROM sys.objects
foo
SELECT * FROM sysobjects
foo

Of course I'm still struggling to find a reason why someone would change the GO command.

One thing I've found out recently is its parameter. SQL Server Management Studio seems to accept an integer after the GO command, and this will start an execution loop. For example if you write

PRINT 'Hello word'
GO 5

The result will be:

Beginning execution loop
Hello word
Hello word
Hello word
Hello word
Hello word
Batch execution completed 5 times.


This is perfect for lazy moments when I want to populate a test table with some default values like:

CREATE TABLE foo
    ( a INT PRIMARY KEY IDENTITY
    , b INT DEFAULT 1
    )
GO

I usually write something like:
INSERT TOP (10) INTO foo (b) SELECT 1 FROM sys.objects

but with the parameter to the GO command the above can be achieved with even less typing:

INSERT INTO foo DEFAULT VALUES
GO 10

The above will also insert 10 rows :)
Do let me know if you find a more interesting use for this parameter.

    Andras
by András

Comments

 

Tech Talk with Brett Maytom said:

An old dog is never to old to learn new tricks, well that what I was thinking is after I read Andras
September 26, 2007 2:02 PM
 

GSquared said:

Wow.  Never knew that.  Never would have thought to try it.  I can think of several uses.
October 1, 2007 1:03 PM
You need to sign in to comment on this blog

About András

András Belokosztolszki is the architect of SQL Compare versions 4, 5, 6 and 7, SQL Log Rescue and SQL Refactor. He is focused on database internals, database synchronization and database schema evolution.

















<September 2007>
SuMoTuWeThFrSa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Ziggurats, Batman and the Town Crier
 We asked Brian for a description of the Help System for the software he's working on and ends up... Read more...

The Future of NET Reflector
 Simple Talk asked freelance writer Bob Cramblitt to sit down with the two people behind the agreement... Read more...

Software Tool Design: Remote User Testing
 If you are developing a software product, you'll know that the sooner you can get feedback from the... Read more...

SQL Toolbelt 2008: Predominantly an Engineering Task
 The conversion of the Red-Gate tools to be compatible with SQL Server 2008 might not seem, on first... Read more...

Andrew Tanenbaum: Geek of the Week
 Andrew Tanenbaum has had an immense influence on the way that operating systems are designed. He... Read more...