11
votes

SQL-Server: syntaxe incorrecte près du mot clé "avec". Si cette déclaration est une expression de table commune

With DateRange(dt) As

0 commentaires

4 Réponses :


13
votes

Ajouter des points-virgules: xxx

http: // sqlfiddle. com / #! 6 / 06E89


5 commentaires

Est-ce nécessaire avant avec la déclaration?


Eh bien, oui, "Si cette déclaration est une expression de table commune ... L'énoncé précédent doit être terminé avec un point-virgule." Vous avez un CTE Droite?


@Nilish: Si je ne suis pas très erroné, SQL Server 2005 tolère l'absence d'un point-virgule avant avec ... (CTE) dans certaines situations, mais en commençant par SQL Server 2008, vous devez toujours Mettez un point-virgule avant avec .


Il convient de souligner que, parfois, tout ce qui est nécessaire est un demi-point juste avant la déclaration avec la déclaration ... même s'il n'y a pas de code avant la déclaration. Il suffit de placer un demi-côon sur une ligne vierge au-dessus de votre déclaration.


@aquinas j'ai un problème similaire posté ici , mais le contexte est différent, donc je ne sais pas si vous auriez des suggestions .



0
votes

Essayez cette syntaxe: xxx


0 commentaires

6
votes

J'ai eu le même problème avec SQL Server 2017. Utilisez Semicolon avant la déclaration suivante.

;WITH


1 commentaires

J'ai essayé votre suggestion, mais obtenez maintenant une erreur différente postée ici . Aucune suggestion?



0
votes

J'ai fait face à ce problème lorsque vous travaillez sur un serveur MS SQL Server 2012.

J'essayais de restaurer une base de données à l'aide du script ci-dessous P>

USE master;
GO

ALTER DATABASE [com.mydb.dev] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

    
RESTORE DATABASE [com.mydb.dev]
    FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\com.mydb.dev_21-08-2020.bak'
    WITH REPLACE,
         STATS = 10,
         RESTART,
    MOVE 'com.my_db.dev' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\com.mydb.dev.mdf',
    MOVE 'com.mydb.dev_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\com.mydb.dev_log.ldf'
GO
    
ALTER DATABASE [com.mydb.dev] SET MULTI_USER;
GO


0 commentaires