Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Użyj znaku podkreślenia, aby dopasować dowolny pojedynczy znak _ w operacji porównania ciągów, która obejmuje dopasowywanie wzorców, takich jak LIKE i PATINDEX.
Examples
Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.
A. Przykład podstawowy
Poniższy przykład zwraca wszystkie nazwy baz danych rozpoczynające się literą m i mają literę d jako trzecią literę. Znak podkreślenia określa, że drugi znak nazwy może być dowolną literą. Bazy model danych i msdb spełniają te kryteria. Baza master danych nie.
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
Oto zestaw wyników.
name
-----
model
msdb
Mogą istnieć dodatkowe bazy danych spełniające te kryteria.
Możesz użyć wielu podkreśleń, aby reprezentować wiele znaków.
LIKE Zmiana kryteriów w celu uwzględnienia dwóch podkreśleń 'm__% obejmuje master bazę danych w wyniku.
B. Bardziej złożony przykład
W poniższym przykładzie _ użyto operatora , aby znaleźć wszystkie osoby w Person tabeli, które mają trzyliterowe imię, które kończy się na .an
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C. Ucieczka znaku podkreślenia
Poniższy przykład zwraca nazwy stałych ról bazy danych, takich jak db_owner i db_ddladmin, ale zwraca również użytkownika dbo .
SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';
Podkreślenie w trzeciej pozycji znaku jest traktowane jako symbol wieloznaczny i nie filtruje tylko podmiotów zabezpieczeń rozpoczynających się od liter db_. Aby uniknąć podkreślenia, należy go ująć w nawiasy [_].
SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';
dbo Teraz użytkownik jest wykluczony.
Oto zestaw wyników.
name
-------------
db_owner
db_accessadmin
db_securityadmin
...