January 25, 2007 at 12:41 am
Hi,
I am very new to SQL server, and hope someone can help me out.
I use the following script (which I found on this website) to create a table CarianTouchPosEj in the database CarianTouchPos I managed to create the CarianTouchPos on the SQL server express
USE master
GO
IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = 'CarianTouchPosEj')
CREATE TABLE CarianTouchPosEj
(
DateID INT NOT NULL
, TheDate DATETIME NOT NULL
, DayOfMonth INT NOT NULL
, DayOfYear INT NOT NULL
, DayOfWeek INT NOT NULL
, DayName VARCHAR(9) NOT NULL
, WeekOfYear INT NOT NULL
, WeekName VARCHAR(7) NOT NULL
, MonthOfYear INT NOT NULL
, MonthName VARCHAR(9) NOT NULL
, Quarter INT NOT NULL
, QuarterName CHAR(6) NOT NULL
, Year INT NOT NULL
,
)
GO
When I execute this script I get an error 102 Syntax error near Go.
My idea is to get this script running and then adapt it to my own needs. I hope someone can help me out here
best regards
Frank
January 25, 2007 at 2:15 am
Hi Frank,
That script executes fine on instances of SQL 2000, SQL 2005 and SQL Express for me - are you sure thats the exact script you are running?
- James
--
James Moore
Red Gate Software Ltd
January 25, 2007 at 11:22 am
Frank,
You have one comma too many within your parentheses:
, Year INT NOT NULL
,
)
Take out the last comma and you're good to go.
hth
Tim
Tim Mitchell
TimMitchell.net | @tmitch.net | Tyleris.com
ETL Best Practices
January 25, 2007 at 1:03 pm
Hi Tim,
thanks for spending time to look at my problem, unfortunately it didn't help. The same error message is displayed on the screen. In my code I store the follwing string in my variable strcmd:
IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = 'CarianTouchPosEj')
CREATE TABLE CarianTouchPosEj
(
DateID INT NOT NULL
, TheDate DATETIME NOT NULL
, DayOfMonth INT NOT NULL
, DayOfYear INT NOT NULL
, DayOfWeek INT NOT NULL
, DayName VARCHAR(9) NOT NULL
, WeekOfYear INT NOT NULL
, WeekName VARCHAR(7) NOT NULL
, MonthOfYear INT NOT NULL
, MonthName VARCHAR(9) NOT NULL
, Quarter INT NOT NULL
, QuarterName CHAR(6) NOT NULL
, Year INT NOT NULL
)
GO
Then I use the following to pass the string to the sql server:
sqlCmd.CommandText = strCmd;
sqlCmd.ExecuteNonQuery();
then I get the error, as I removed the last comma as you suggested there must be something else I'm doing wrong.
Looking forward to your reply!
best regards
Frank
January 25, 2007 at 1:07 pm
Frank,
Try removing the GO statement altogether. This statement is simply a batch terminator, and assuming this is the only command you are running in this batch it is unnecessarily verbose to include it.
hth
Tim
Tim Mitchell
TimMitchell.net | @tmitch.net | Tyleris.com
ETL Best Practices
January 26, 2007 at 9:04 am
The 'GO' batch terminator is configurable at the client. Depending on what is running the statement, this may not be a valid terminator. The script should work without the GO's.
Your script is creating a table in the Master database which is typically not a good idea.
Viewing 6 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic. Login to reply