SSMS in SQLCMD mode - invalid syntax
This is my day for strange mistakes.
I am using a database project and as part of Post Deployment, we are using SQL Scripts to populate the data in our tables.
alter authorization on database::atlas to sa;
go
ALTER DATABASE ATLAS SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO
:r C:\Scripts\Script.DisableTriggers.sql
:r C:\Scripts\dbo\Script.dbo.PaymentMethod.sql
:r C:\Scripts\dbo\Script.dbo.TransactionEntryMethod.sql
:r C:\Scripts\dbo\Script.dbo.TransactionTypeGroup.sql
:r C:\Scripts\dbo\Script.dbo.TransactionType.sql
:r C:\Scripts\Script.EnableTriggers.sql
each of these scenarios is very similar to the one below
SET IDENTITY_INSERT [dbo].[TransactionTypeGroup] ON
INSERT INTO [dbo].[TransactionTypeGroup] (TransactionTypeGroupID,TransactionTypeGroupName) VALUES
(1,'Inquiry')
, (2,'Points')
, (3,'Board')
, (4,'Guest Meals')
, (5,'Cash Equivalency')
, (6,'Deposits')
, (7,'Void/Void Tender')
, (8,'Refund')
SET IDENTITY_INSERT [dbo].[TransactionTypeGroup] OFF
GO
When I get my output back, I get the following error:
(1 row(s) affected)
(1 row(s) affected)
(25 row(s) affected)
(11 row(s) affected)
(2 row(s) affected)
(598 row(s) affected)
(3 row(s) affected)
Msg 102, Level 15, State 1, Line 234
Incorrect syntax near 'OFFSET'.
I have searched my entire SQL directory and there is no word called OFFSET in any SQL file or any command I issue. But still I am getting this error.
Msg 102, Level 15, State 1, Line 234
Incorrect syntax near "OFFSET".
What's going on here?
source to share
It's baadddddddd
It will concatenate commands together from file to file
One file ended this way
SET IDENTITY_INSERT TABLEONE OFF
The following file started this path
SET IDENTITY_INSERT TABLETWO ON
But the first file didn't have a blank line after SET IDENTITYINSERT was turned off.
SSMS put these two files together and executed them, so the result became
SET IDENTITY_INSERT TABLEONE OFFSET IDENTITY_INSERT TABLETWO ON
and how this error appeared
Msg 102, Level 15, State 1, Line 234
Incorrect syntax near 'OFFSET'.
Terrible.
source to share