С помощью команды INSERT таблица SUBJECTS заполняется значениями. Т.к., первое поле таблицы имеет свойство IDENTITY, то значение для него генерируется автоматически, а потому не указывается в списке значений после ключевого слова VALUE. При этом не требуется задавать после имени таблицы список столбцов, для которых явно указаны значения в команде INSERT.
Для выполнения команды INSERT пользователь должен иметь привилегию db_datawriter доступа к базе данных, в которой находится искомая таблица.
*/
END
--ELSE
-- DROP TABLE SUBJECTS
/*
Если таблица SUBJECTS существует, то она уничтожается с помощью команды DDL DROP TABLE, для выполнения которой пользователь должен иметь привилегию db_ddladmin доступа к базе данных, в которой находится удаляемая таблица. Эту команду нельзя применять для таблиц, на которые идет ссылка в ограничении FOREIGN KEY ... REFERENCES (для удаления таких таблиц необходимо удалить ограничение FOREIGN KEY ... REFERENCES или таблицу, его содержащую).
*/
if NOT exists(select TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'PERSONS')
/*
Проверяется: существует ли выборка из представления TABLES, владельцем которого является пользователь INFORMATION_SCHEMA, поля TABLE_NAME, значения которого должно равняться PERSONS. Для получения нужного значения поля TABLE_NAME используется команда DML SELECT. Для ее использования пользователь должен иметь привилегию db_datareader доступа к базе данных, которая содержит искомую таблицу.
Смысл этого оператора языка TSQL заключается в проверке того, существует ли таблица с именем PERSONS. Если такая таблица не существует, то выполняется ее создание и наполнение данными.
*/
BEGIN
/*
Используются операторные скобки BEGIN...END, т.к., целый блок операторов должен рассматриваться как единая группа операторов.