В проекте .NET мне нужно проверить, является ли строка допустимым идентификатором параметра Microsoft SQL Server 2005.
Пример: SELECT * FROM table WHERE column = @parameter
Существует ли метод класса среды выполнения для проверки строки на предмет того, что она является параметром, или есть регулярное выражение, которое проверяет правила? (см. ниже)
Из документации по идентификаторам параметры должны соответствовать к этим общим правилам идентификаторов:
- Первый символ должен быть одним из следующих: * Буква, как определено в стандарте Unicode 3.2. Определение букв Unicode включает латинские символы от a до z, от A до Z, а также буквенные символы из других языков. * Подчеркивание (_), знак at (@) или цифровой знак (#).
Некоторые символы в начале идентификатора имеют особое значение в SQL Server. Обычный идентификатор, который начинается со знака at, всегда обозначает локальную переменную или параметр и не может использоваться в качестве имени любого другого типа объекта. Идентификатор, который начинается со знака числа, обозначает временную таблицу или процедуру. Идентификатор, который начинается с двойных цифровых знаков (##), обозначает глобальный временный объект. Несмотря на то, что символы знака числа или знака двойного числа могут использоваться в начале имен объектов других типов, мы не рекомендуем это делать. Некоторые функции Transact-SQL имеют имена, начинающиеся с двойных знаков (@@). Чтобы избежать путаницы с этими функциями, не следует использовать имена, начинающиеся с @@.- Последующие символы могут включать следующее: * Буквы, как определено в стандарте Unicode 3.2. * Десятичные числа из базовой латыни или других национальных алфавитов. * Знак «at», знак доллара ($), знак числа или подчеркивание.
- Идентификатор не должен быть зарезервированным словом Transact-SQL. SQL Server резервирует зарезервированные слова как в верхнем, так и в нижнем регистре.
- Встроенные пробелы или специальные символы не допускаются.
- Дополнительные символы не допускаются.
Когда идентификаторы используются в операторах Transact-SQL, идентификаторы, не соответствующие этим правилам, должны быть разделены двойными кавычками или скобками.
Поскольку я хочу проверять только параметры, идентификаторы должны начинаться со знака @ и не должны быть разделены.