Эта статья переведена вручную. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. |
Перевод
Текст оригинала
|
SR0010: не используйте устаревший синтаксис при объединении таблиц или представлений
Идентификатор RuleId | SR0010 |
Категория | Microsoft.Design |
Критическое изменение | Не критическое |
Чтобы устранить нарушение во внутреннем соединении, используйте синтаксис INNER JOIN, как показано в примере ниже в этом же разделе. Дополнительные сведения см. на странице Использование внутренних соединений (страница может быть на английском языке) веб-сайта корпорации Майкрософт.
Чтобы устранить нарушение во внешнем соединении, используйте подходящий синтаксис OUTER JOIN, как показано в примерах ниже в этом же разделе. Имеются следующие варианты:
-
LEFT OUTER JOIN или LEFT JOIN
-
RIGHT OUTER JOIN или RIGHT JOIN
Примечание Transact-SQL поддерживает FULL OUTER JOIN и FULL JOIN, но в этом типе соединения не было предыдущего синтаксиса.
Дополнительные сведения см. на странице Использование внешних соединений (страница может быть на английском языке) веб-сайта корпорации Майкрософт.
В этих шести примерах показаны следующие параметры.
-
В примере 1 демонстрируется устаревший синтаксис для внутреннего соединения.
-
В примере 2 показывается порядок обновления примера 1, чтобы в нем использовался текущий синтаксис.
-
В примере 3 демонстрируется устаревший синтаксис для левого внешнего соединения.
-
В примере 4 показывается порядок обновления примера 2, чтобы в нем использовался текущий синтаксис.
-
В примере 5 демонстрируется устаревший синтаксис для правого внешнего соединения.
-
В примере 6 показывается порядок обновления примера 5, чтобы в нем использовался текущий синтаксис.
-- Example 1: Deprecated syntax for an inner join SELECT [T2].[c3], [T1].[c3] FROM [dbo].[Table2] T2, [dbo].[Table1] T1 WHERE [T1].[ID] = [T2].[ID] -- Example 2: Current syntax for an inner join SELECT [T2].[c3], [T1].[c3] FROM [dbo].[Table2] AS T2 INNER JOIN [dbo].[Table1] as T1 ON [T2].[ID] = [T2].[ID] -- Example 3: Deprecated syntax for a left outer join SELECT [T2].[c3], [T1].[c3] FROM [dbo].[Table2] T2, [dbo].[Table1] T1 WHERE [T1].[ID] *= [T2].[ID] -- Example 4: Fixed syntax for a left outer join SELECT [T2].[c3], [T1].[c3] FROM [dbo].[Table2] AS T2 LEFT OUTER JOIN [dbo].[Table1] as T1 ON [T2].[ID] = [T2].[ID] -- Example 5: Deprecated syntax for a right outer join SELECT [T2].[c3], [T1].[c3] FROM [dbo].[Table2] T2, [dbo].[Table1] T1 WHERE [T1].[ID] =* [T2].[ID] -- Example 6: Fixed syntax for a right outer join SELECT [T2].[c3], [T1].[c3] FROM [dbo].[Table2] AS T2 RIGHT OUTER JOIN [dbo].[Table1] as T1 ON [T2].[ID] = [T2].[ID]