Если @myInt равен нулю, это означает, что в таблице нет строк: оно будет равно NULL, если вообще не задано.
COUNT всегда будет возвращать строку, даже если в таблице нет строк.
Edit, Apr 2012: правила для этого описаны в моем ответе здесь: Всегда ли COUNT (*) возвращает результат?
Ваш счет / назначение верен, но может быть любым из следующих способов:
select @myInt = COUNT(*) from myTable
set @myInt = (select COUNT(*) from myTable)
Однако, если вы просто ищете наличие строк, (НЕ) EXISTS более эффективен:
IF NOT EXISTS (SELECT * FROM myTable)