Есть ли возможность проверить синтаксис после того, как я завершил создание запроса? Если да, где я могу его найти? Что он проверяет и что он не подтверждает?
Как проверить синтаксис SQL в SQL Server 2008 R2?
Ответ 1
Вы можете нажать кнопку Parse query
в Studio Management Studio. Это голубая галочка на панели инструментов (вы также можете использовать Ctrl + F5):
Это только подтверждает синтаксис и не проверяет, что объекты, на которые вы ссылались, существуют, что соединения действительны и т.д. Например, следующие правильно анализируют, поскольку отложенное разрешение предполагает, что к моменту запуска запроса "для реального" объект будет существовать:
SELECT foo FROM dbo.table_does_not_exist;
Это также проходит разбор:
SELECT d.foo
FROM x.dbo.does_not_exist AS d
INNER JOIN sys.objects AS s
ON d.blat = s.bar;
Даже если sys.objects
существует, но не содержит столбца bar
.
Это по сути тот же механизм, который позволяет вам скомпилировать хранимую процедуру, которая ссылается на объекты, которые еще не существуют (что, конечно же, не удастся во время выполнения).