Question

Il est mon jour pour des erreurs étranges.

J'utilise un projet de base de données et comme une partie de post-déploiement, nous utilisons des scripts SQL pour remplir les données dans nos tableaux.

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

chacun de ces scripts est très similaire à celui ci-dessous

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

Quand je reçois ma sortie arrière, je reçois l'erreur suivante:

(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'.

Je l'ai cherché tout mon répertoire SQL, et il n'y a pas de mot appelé OFFSET dans un fichier SQL ou dans une commande que je lance. Mais pourtant je reçois cette erreur ..

Msg 102, niveau 15, état 1, ligne 234
syntaxe incorrecte près de 'OFFSET'.

Qu'est-ce qui se passe ici?

Était-ce utile?

La solution

est baadddddddd

Il concaténer les commandes ainsi que d'un fichier à

Un fichier a terminé cette façon

SET IDENTITY_INSERT TABLEONE OFF

fichier suivant a commencé cette façon

SET IDENTITY_INSERT TABLETWO ON

Mais le premier fichier n'a pas une ligne vide après le SET IDENTITYINSERT OFF.

SSMS mettais les deux fichiers ensemble et de les exécuter, de sorte que la sortie est devenu

SET IDENTITY_INSERT TABLEONE OFFSET IDENTITY_INSERT TABLETWO ON

et voilà comment cette erreur est venu

Msg 102, Level 15, State 1, Line 234
Incorrect syntax near 'OFFSET'.

Affreux.

Je viens de soumettre un bug dans Microsoft Connect.

Autres conseils

Avez-vous vérifié si un déclencheur est mise à feu dans Script.EnableTriggers.sql? Si vous ne connaissez pas votre code de déclenchement, essayez ceci:

select * from sys.sql_modules where definition like '%OFFSET%'

Faites-moi savoir si vous trouvez quoi que ce soit.

Merci, Eric

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top