De regex beschreven in de link zou moeten zijn:
var regex = new Regex(@"^[\p{L}_][\p{L}\p{N}@$#_]{0,127}$");
Houd er rekening mee dat u in het algemeen de naam van de tabel moet insluiten in [...]
, vanwege regel 3 (dus SELECT * FROM [SET]
is een geldige zoekopdracht, omdat, terwijl SET
is een gereserveerd trefwoord, u kunt het "ontsnappen" met de [...]
)
Merk op dat op de gelinkte pagina de regel onvolledig is:
Van https://msdn.microsoft.com/en-us/library/ ms175874.aspx
- De identifier mag geen door Transact-SQL gereserveerd woord zijn. SQL Server reserveert zowel de hoofdletters als de kleine letters van gereserveerde woorden. Wanneer id's worden gebruikt in Transact-SQL-instructies, de id's die niet aan deze regels voldoen, moeten worden gescheiden door dubbele aanhalingstekens of haakjes . De woorden die zijn gereserveerd, zijn afhankelijk van het compatibiliteitsniveau van de database. Dit niveau kan worden ingesteld met behulp van de instructie ALTER DATABASE.
En ze vergaten:https://msdn.microsoft.com/en-us /bibliotheek/ms174979.aspx
De regel die ik heb geschreven is voor "volledige" tabellen, niet voor tijdelijke tabellen, en bevat geen schemanaam.