Соглашения / шаблоны SQL Server TSQL для SET, WITH и ENABLE - PullRequest
0 голосов
/ 03 октября 2009

После нескольких лет использования TSQL я все еще не могу понять, когда использовать SET, WITH или ENABLE.

Когда вы читаете оператор TSQL как,

ALTER TABLE Person.Person
ENABLE CHANGE_TRACKING 
WITH (TRACK_COLUMNS_UPDATED = ON);

Это выглядит более интуитивно понятным и читабельным, если оно было написано как (неверный запрос ниже),

ALTER TABLE Person.Person
SET CHANGE_TRACKING = ON,
    TRACK_COLUMNS_UPDATED = ON

Я всегда путаюсь, когда использовать SET, ENABLE или WITH опции

Когда эти опции используются в TSQL? TSQL просто несовместим?

1 Ответ

1 голос
/ 03 октября 2009

SET используется только когда-либо:

  1. Как отдельный оператор для изменения значения переменной, или ..

  2. .. для изменения определенных настроек подключения.

  3. Или, в качестве предложения оператора DML, UPDATE.

ENABLE - это всего лишь пункт операторов DDL или DAL

WITH всегда является зависимым предложением других операторов (хотя для CTE это сбивает с толку, когда это зависимое предложение с префиксом)

Таким образом, SET должен быть ясен, однако, по общему признанию, похоже, что нет никакого последовательного правила относительно WITH vs ENABLE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...