2016-08-01 5 views
-1

Я пытаюсь отобразить запланированные задания с именем, статусом и описанием. Это работает очень хорошо, однако, когда я пытаюсь сортировать его с помощью порядка на ScheduledName, я получаю сообщение об ошибке, что у меня неправильный синтаксис, и я понятия не имею, как его исправить.Неверный синтаксис рядом с ключевым словом 'inner'

SELECT * FROM sysjobs Job 

SELECT * FROM sysschedules 

SELECT * FROM sysjobschedules 

SELECT 
    SC.name AS ScheduledName, Job.name AS JobName, 
    Job.enabled AS JobStatus, Job.description AS JobDescription 
FROM 
    sysjobs Job 
ORDER BY 
    ScheduledName; 
INNER JOIN 
    sysjobschedules SCH ON Job.job_id = SCH.job_id 
INNER JOIN 
    sysschedules SC ON SC.schedule_id = SCH.schedule_id 
+3

Вы не можете иметь порядок, прежде чем присоединиться к внутренним – Jens

+0

Сортировать по в конце –

ответ

0

Вы используете неправильный синтаксис. Изменить на:

USE msdb 
GO 

SELECT * FROM sysjobs Job; 

SELECT * FROM sysschedules; 

SELECT * FROM sysjobschedules; 

SELECT SC.name AS ScheduledName, Job.name AS JobName, Job.enabled AS JobStatus, Job.description AS JobDescription FROM sysjobs Job 
inner join sysjobschedules SCH 
on Job.job_id=SCH.job_id 
inner join sysschedules SC 
on SC.schedule_id=SCH.schedule_id 
ORDER BY ScheduledName 
+0

Благодарности @Jens, отлично работает в настоящее время –

0

Ваш запрос:

SELECT SC.name AS ScheduledName, Job.name AS JobName, Job.enabled AS JobStatus, Job.description AS JobDescription 
FROM sysjobs Job 
ORDER BY SC.name; 

точка с запятой завершает запрос.

Когда вы удалите точку с запятой, также необходимо переместить ORDER BY до конца:

SELECT SC.name AS ScheduledName, Job.name AS JobName, 
     Job.enabled AS JobStatus, Job.description AS JobDescription 
FROM sysjobs Job inner join 
    sysjobschedules SCH on 
    Job.job_id = SCH.job_id inner join 
    sysschedules SC 
    on SC.schedule_id = SCH.schedule_id 
ORDER BY SC.name; 
0
SELECT SC.NAME AS ScheduledName 
    ,Job.NAME AS JobName 
    ,Job.enabled AS JobStatus 
    ,Job.description AS JobDescription 
FROM sysjobs Job 
INNER JOIN sysjobschedules SCH ON Job.job_id = SCH.job_id 
INNER JOIN sysschedules SC ON SC.schedule_id = SCH.schedule_id 
ORDER BY SC.NAME 
0

Order By должен быть в конце

USE msdb 
GO 

SELECT * FROM sysjobs Job 

SELECT * FROM sysschedules 

SELECT * FROM sysjobschedules 

SELECT 
    SC.name AS ScheduledName, 
    Job.name AS JobName, 
    Job.enabled AS JobStatus, 
    Job.description AS JobDescription 
FROM sysjobs Job 
inner join sysjobschedules SCH 
on Job.job_id=SCH.job_id 
inner join sysschedules SC 
on SC.schedule_id=SCH.schedule_id 
ORDER BY ScheduledName;