运行一些select语句的SQL作业'\'附近的语法不正确。 [SQLSTATE 42000](错误102)

时间:2014-04-03 13:34:10

标签: sql syntax-error sql-job

我有一个SQL作业,其中包含一些select语句(4个视图和1个文本)。

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Database Email',
    @recipients = 'dbcheck@xxx.com',
    @subject = 'SQL Replication Deletion Check',
    @query = 'SELECT '\\server1\folder1\SQL\check.sql' AS [Script]
SELECT * FROM [repserv].[dbo].[1repdupecheck]
SELECT * FROM [repserv].[dbo].[2repdupecheck]
SELECT * FROM [repserv].[dbo].[3repdupecheck]
SELECT * FROM [repserv].[dbo].[4repdupecheck]',
    @attach_query_result_as_file = 1;

我目前在运行时遇到以下错误。

Message
Executed as user: SERVER1\sqlusr. Incorrect syntax near '\'. [SQLSTATE 42000] (Error 102).  The step failed.

现在我也尝试用'\'取出行并且它有效,所以我只能假设一个括号或某些东西需要放在选择文本的反斜杠周围。

2 个答案:

答案 0 :(得分:4)

您需要转义反斜杠和引号

'SELECT ''\\\\server1\\folder1\\SQL\\check.sql'' AS [Script]

答案 1 :(得分:0)

在下面的帮助下得到它,只需要添加双引号(不需要在反斜杠上翻倍)

'SELECT ''\\server1\folder1\SQL\check.sql'' AS [Script]