0

我有一个 SQL 作业,其中包含一些选择语句(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.

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

4

2 回答 2

4

您需要转义反斜杠和引号

'SELECT ''\\\\server1\\folder1\\SQL\\check.sql'' AS [Script]
于 2014-04-03T13:35:29.147 回答
0

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

'SELECT ''\\server1\folder1\SQL\check.sql'' AS [Script]
于 2014-04-03T13:40:28.513 回答