Как использовать SQL-запрос для переименования ограничения?
В SQL нам иногда нужно переименовать ограничения таблицы. Весь процесс для того, чтобы сделать то же самое, продемонстрирован ниже. В этой статье мы будем использовать Microsoft SQL Server в качестве нашей базы данных.
Шаг 1: Создайте базу данных. Для этого используйте приведенную ниже команду, чтобы создать базу данных с именем GeeksForGeeks.
Запрос:
CREATE DATABASE GeeksForGeeks
Выход:
Шаг 2: Используйте базу данных GeeksForGeeks. Для этого используйте приведенную ниже команду.
Запрос:
USE GeeksForGeeks
Выход:
Шаг 3: Создайте таблицу INFO внутри базы данных GeeksForGeeks. В этой таблице есть 3 столбца, а именно S_NAME, ROLL и BRANCH, содержащие имя, номер списка и филиал различных студентов, обучающихся в инженерном колледже.
Запрос:
CREATE TABLE INFO( S_NAME VARCHAR(20), ROLL INT, BRANCH VARCHAR(5));
Выход:
Шаг 4: Добавьте пользовательское ограничение CHECK CONSTRAINT с именем BRANCH_CHECK в таблицу INFO . Это ограничение проверяет, что ветвь учащегося, введенная в базу данных, входит в число 5 ветвей, преподаваемых в инженерном колледже, а именно информатика и инженерия, электроника и техника связи, гражданское строительство, машиностроение и электротехника.
Запрос:
ALTER TABLE INFO ADD CONSTRAINT BRANCH_CHECK CHECK (BRANCH IN("CSE","ECE","CE","ME","ELE"));
Выход:
Шаг 5: Опишите структуру таблицы INFO.
Запрос:
EXEC SP_COLUMNS INFO;
Выход:
Шаг 6: Вставьте 5 строк в таблицу INFO так, чтобы ветви находились в пределах 5 ветвей, определенных в ограничении BRANCH_CHECK . Таким образом, при добавлении этих строк не возникает никаких ошибок.
Запрос:
INSERT INTO INFO VALUES("MATT",1001,"CSE"); INSERT INTO INFO VALUES("SAM",1002,"ECE"); INSERT INTO INFO VALUES("NICK",1003,"CE"); INSERT INTO INFO VALUES("JOHN",1004,"ELE"); INSERT INTO INFO VALUES("BRUCE",1005,"ME");
Выход:
Шаг 7: Вставьте строки в таблицу INFO таким образом, чтобы ветвь НЕ находилась в пределах 5 ветвей, определенных в ограничении BRANCH_CHECK . Это выдает ошибку, так как нарушает ограничение.
Запрос:
INSERT INTO INFO VALUES("MORRIS",1006,"MECH");
Выход:
Шаг 8: Отобразите все строки таблицы INFO.
Запрос:
SELECT * FROM INFO;
Выход:
Шаг 9: Отобразите все ограничения, определенные для таблицы INFO.
Запрос:
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME="INFO";
Выход:
Шаг 10: Переименуйте определяемое пользователем проверочное ограничение с BRANCH_CHECK на CHECK_BRANCH .
Запрос:
SP_RENAME "BRANCH_CHECK","CHECK_BRANCH";
Выход:
Шаг 11: Отобразите все ограничения, определенные для таблицы INFO. Теперь должно быть видно новое имя, т.е. CHECK_BRANCH , вместо старого имени, т.е. BRANCH_CHECK .
Запрос:
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME="INFO";
Выход:
Таким образом, описанным выше способом можно переименовать любое ограничение, присутствующее в таблице.