sql >> Databáze >  >> RDS >> Sqlserver

Regulární výraz pro ověření názvu tabulky serveru SQL

Regulární výraz popsaný v odkaz by mělo být:

var regex = new Regex(@"^[\p{L}_][\p{L}\p{N}@$#_]{0,127}$");

Všimněte si, že obecně budete muset název tabulky vložit do [...] , kvůli pravidlu 3 (takže SELECT * FROM [SET] je platný dotaz, protože zatímco SET je vyhrazené klíčové slovo, můžete jej "uniknout" pomocí [...] )

Všimněte si, že na odkazované stránce je pravidlo neúplné:

Z https://msdn.microsoft.com/en-us/library/ ms175874.aspx

  1. Identifikátor nesmí být vyhrazené slovo Transact-SQL. SQL Server rezervuje velká i malá verze vyhrazených slov. Když jsou v příkazech Transact-SQL použity identifikátory, identifikátory, které nesplňují tato pravidla, musí být odděleny dvojitými uvozovkami nebo hranatými závorkami . Slova, která jsou vyhrazena, závisí na úrovni kompatibility databáze. Tuto úroveň lze nastavit pomocí příkazu ALTER DATABASE.

A zapomněli:https://msdn.microsoft.com/en-us /library/ms174979.aspx

Pravidlo, které jsem napsal, je pro "úplné" tabulky, nikoli pro dočasné tabulky, a nezahrnuje název schématu.




  1. Jak odstranit duplicitní řádky a aktualizovat tabulku

  2. Brána PL/SQL v R11i

  3. Ukládání pole neznámé délky

  4. count(*) a count(název_sloupce), jaký je rozdíl?