У меня есть 3 таблицы, чей ID имеет другой диапазон.например, таблица a имеет идентификатор <1000000, таблица b имеет идентификатор (от 10000001 до 2000000), таблица c имеет идентификатор> 2000000.И я создал проверочное ограничение для 3 таблиц в соответствии с диапазоном каждой таблицы.Позже я создал одно представление, ссылающееся на три таблицы, используя union all.Когда я запрашиваю представление, используя условие идентификатора (= xxx), оно запрашивает только таблицу, в которой хранятся данные, и игнорирует запросы к двум другим таблицам.Это работает так, как я ожидал.
Но если тип столбца - char (xx), и я установил ограничение проверки как (например, 'a%' для таблицы a, как 'b%' для таблицы b, как 'c%' для таблицыс).Затем запросите представление, используя имя = 'bcd'.После просмотра плана выполнения он на самом деле запросит 3 таблицы.проверочное ограничение не помогает игнорировать запросы к двум таблицам, которые не содержат данных.
Итак, мой вопрос в том, что не так, когда проверочное ограничение ссылается на символьный столбец?