Azure SQL数据库中SQL作业中的语法错误

问题描述

我要在Azure Elastic Job Agent中插入作业步骤。这是我的代码

EXEC jobs.sp_add_jobstep @job_name='Sample T-sql',@command=N' declare @columns varchar(max)
select @columns = stuff(( select '],[' + [$Name]
                    from dbo.groups
                    order by '],[' + convert(varchar(max),[$_ClosingBalance]) desc
                    for xml path('')),1,2,'' + ']'
INSERT INTO dbo.Trial1  
(   [Bank Accounts],[Bank OD A/c],[Branch / Divisions],[Capital Account],[Cash-in-Hand],[Current Assets],[Current Liabilities],[Deposits (Asset)],[Direct Expenses],[Direct Incomes],[Duties & Taxes],[Fixed Assets],[Duties & Taxes1],[Duties & Taxes2],[Indirect Expenses],[Indirect Incomes],[Investments],[Loans & Advances (Asset)],[Loans (Liability)],[Misc# Expenses (ASSET)],[Provisions],[Purchase Accounts],[Reserves & Surplus],[Sales Accounts],[Secured Loans],[Stock-in-Hand],[Stock Transfer Outward],[Sundry Creditors],[Sundry Debtors],[Suspense A/c],[Duties & Taxes3],[Unsecured Loans]
)  
Select * from (
    Select [$_ClosingBalance],RowN = Row_Number() over (order by @columns) from dbo.Groups
    ) a
    pivot (max([$_ClosingBalance]) for RowN in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[32])) p

 

INSERT INTO dbo.Date ([Date]) VALUES (GETDATE())
INSERT INTO dbo.Final
SELECT * 
FROM  dbo.Trial1
INNER JOIN dbo.Date
ON dbo.Trial1.IdCol = dbo.Date.IDCol1'',@credential_name='JobRun',@target_group_name='DatabaseGroup5'

我收到以下错误

Msg 102,Level 15,State 1,Line 3
Incorrect Syntax near ']'.
Msg 137,State 2,Line 15
Must declare the scalar variable "@columns".
Msg 102,Line 24
Incorrect Syntax near ''

我的代码在不应该结束的地方结束。请帮忙。

解决方法

分配@command之后,您可以编写:print @command 然后您可以查看打印的脚本,将其复制并粘贴到查询窗口中。然后仔细地了解您的错误。