Регулярният израз, описан в връзка трябва да бъде:
var regex = new Regex(@"^[\p{L}_][\p{L}\p{N}@$#_]{0,127}$");
Имайте предвид, че по принцип ще трябва да вградите името на таблицата в [...]
, поради правило 3 (така SELECT * FROM [SET]
е валидна заявка, защото докато SET
е запазена ключова дума, можете да я "избягате" с [...]
)
Имайте предвид, че в свързаната страница правилото е непълно:
От https://msdn.microsoft.com/en-us/library/ ms175874.aspx
- Идентификаторът не трябва да бъде запазена дума на Transact-SQL. SQL Server запазва версиите с главни и малки букви на запазените думи. Когато се използват идентификатори в Transact-SQL изрази, идентификаторите, които не отговарят на тези правила, трябва да бъдат разделени с двойни кавички или скоби . Думите, които са запазени, зависят от нивото на съвместимост на базата данни. Това ниво може да бъде зададено чрез израза ALTER DATABASE.
И те забравиха:https://msdn.microsoft.com/en-us /library/ms174979.aspx
Правилото, което написах е за "пълни" таблици, а не за временни таблици и не включва име на схема.