Count возвращает количество строк в таблице.Вы не должны ожидать, что оно будет 0 или 1.
Вы можете утверждать, что не может быть более одной таблицы с одним именем, но проблема в том, что ваш запрос использует like '%TableName%'
.Поэтому, если у вас есть таблицы MyTable
и BestTable
, и вы хотите проверить, выходит ли Table
, результат подсчета будет равен 2, хотя нет таблицы с таким именем.
Вы можетеобновите оператор выбора, чтобы он выглядел так:
select case when exists(select * from sys.tables where name = 'TableName') then 1 else 0 end