Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Используйте символ _ подчеркивания для сопоставления любого одного символа в операции сравнения строк, которая включает сопоставление шаблонов, например LIKE и PATINDEX.
Examples
Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.
A. Базовый пример
В следующем примере возвращаются все имена баз данных, которые начинаются с буквы m и имеют третью букву d. Символ подчеркивания указывает, что вторым символом в имени может быть любая буква. Этому условию удовлетворяют базы данных model и msdb. А база данных master — нет.
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
Вот результирующий набор.
name
-----
model
msdb
У вас могут быть дополнительные базы данных, соответствующие этим критериям.
Для представления нескольких символов можно использовать несколько символов подчеркивания. Изменение условий LIKE , включающих два подчеркивания 'm__% , включает master базу данных в результат.
B. Более сложный пример
В следующем примере оператор используется _ для поиска всех людей в Person таблице, у которых есть трехбуквенный первый имя, который заканчивается an.
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C. Экранирование символа подчеркивания
В следующем примере возвращаются имена фиксированных ролей базы данных, таких как db_owner и db_ddladmin, но он также возвращает пользователя dbo .
SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';
Подчеркивание в третьей позиции символа принимается как подстановочный знак и не фильтруется только для субъектов, начиная с букв db_. Чтобы избежать подчеркивания, заключите его в квадратные скобки [_].
SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';
Теперь пользователь dbo исключен.
Вот результирующий набор.
name
-------------
db_owner
db_accessadmin
db_securityadmin
...