5

I created a sql script to check if a database already exist, if it already exists it deletes and re-creates.
After I would like to connect it directly after its creation for creating tables ..

Here is my code but it does not work, it produces the following error:

Msg 911, Level 16, State 1, Line 10
Database 'Arms2' does not exist. Make sure that the name is entered correctly.

My script

IF EXISTS (select * from sys.databases where name = 'Arms2')
BEGIN 
    DROP DATABASE Arms2
    PRINT 'DROP DATABASE Arms2'
END
    CREATE DATABASE Arms2;
    PRINT 'CREATE DATABASE Arms2'

USE Arms2

CREATE TABLE .....
0

1 Answer 1

12

Put a GO statement after the CREATE...

...
CREATE DATABASE Arms2;
PRINT 'CREATE DATABASE Arms2'
GO
USE Arms2
Sign up to request clarification or add additional context in comments.

4 Comments

Thank you very much! Everything works perfectly. Can explain why it was necessary to add "GO"?
@MehdiBugnard It's a "splitter" for certain Microsoft products (SSMS/OSQL) that tells the system to split the script into two batches. It's not a real keyword, in fact you can change it to something else from the options menu in SSMS.
Also, just to provide the MSDN reference - msdn.microsoft.com/en-gb/library/ms188037.aspx
GO is specific to SQL Server Management Studio and so isn't recognised by SQL Server.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.