Но, на мой взгляд, одна важная вещь.
"char (число)" это длина переменной.
Если у нас есть таблица с «Именами», например, [Test1..Test200], и мы объявляем char (5) в SELECT, например:
DECLARE @variable char(5)
SET @variable = 'Test1%'
SELECT * FROM table WHERE Name like @variable
результат будет только - "Test1"! (char (5) - 5 символов в длине; Test11 равен 6)
Остальные потенциальные данные, такие как [Test11..Test200], не будут возвращены в результате.
Это нормально, если мы хотим ограничить SELECT таким способом.
Но если это не преднамеренный способ, он может вернуть неверные результаты из запланированных
(Например, «все имена начинаются с Test1 ...»).
По моему мнению, если мы не знаем точную длину выбранного значения, лучшим решением может быть что-то вроде этого:
DECLARE @variable varchar(max)
SET @variable = 'Test1%'
SELECT * FROM <table> WHERE variable1 like @variable
Возвращает (Test1, но также Test11..Test19 и Test100..Test199).