在BEGIN ... END之间包含SQL文件返回错误SQL80001

时间:2014-08-14 07:37:54

标签: sql sql-server

当我尝试在BEGIN ... END语句之间包含SQL文件时,我遇到了问题。 这是我的sql脚本:

IF @Statement   
BEGIN

:r .\myfile.sql

END

当我尝试执行它时,出现以下错误:

Error   160 SQL80001: Incorrect syntax near ':'.

有人知道我做错了吗?

非常感谢你。

2 个答案:

答案 0 :(得分:0)

BEGIN和END是Transact-SQL语句。它们由SQL Server引擎解析和执行

:r是sqlcmd扩展名。 sqlcmd工具使用它来更改发送到SQL Server的任何内容。

如果您将:r发送到引擎(您执行了此操作),则会出现语法错误。启用sqlcmd模式时,可以在sqlcmd,SSMS中使用:r,或者您可以起诉自定义库在您的应用中执行此操作,例如DbUtilSqlCmd

答案 1 :(得分:0)

您可以点击页面右上角的按钮尝试启用SQLCMD模式。 (至少我认为应该在哪里)

希望有所帮助。

//霍迪尼