Почтовая проверка Microsoft SQL Server

Используя Microsoft SQL Server 2005 и выше, какой код я использую для проверки этого, адрес электронной почты корректен?
Существует ли почтовый тип данных?
Существует ли почтовое проверочное ограничение?
Существует ли почтовое правило?
Существует ли почтовый триггер?
Существует ли почтовая хранимая процедура проверки?

5
задан AdaTheDev 9 February 2010 в 14:51
поделиться

3 ответа

Я не знаю обычно рекомендуется использовать хранимую процедуру CLR, но это хорошее ее применение. Возможности SQL по обработке строк невелики, тогда как использование .NET Regex в хранимой процедуре CLR несложно, и вы можете использовать один из многих существующих шаблонов Regex для удовлетворения ваших потребностей (например, один из этих ). См. Регулярные выражения упрощают сопоставление с образцом и извлечение данных

В противном случае (некоторые администраторы баз данных очень строго относятся к включению функции CLR), возможно, это может быть интересно:

Работа с адресами электронной почты в SQL Server

Обновление : в ответ на вопрос в комментариях: Хранимая процедура CLR - это объект базы данных внутри экземпляра SQL Server, который запрограммирован в сборке, созданной в среде общеязыковой среды Microsoft .NET Framework ( CLR), например Visual Basic или C #.

Создание хранимой процедуры CLR на сервере SQL включает следующие шаги:

  • Определение хранимой процедуры как статического метода класса на языке , поддерживаемом .NET Framework. Для получения дополнительной информации о том, как программировать хранимые процедуры CLR, см. Хранимые процедуры CLR . Затем скомпилируйте класс, чтобы построить сборку в .NET Framework, используя соответствующий компилятор языка .

  • Зарегистрируйте сборку в SQL Server с помощью инструкции CREATE ASSEMBLY . Для получения дополнительной информации о работе со сборками на сервере SQL см. Сборки.

  • Создайте хранимую процедуру, которая ссылается на зарегистрированную сборку с помощью , используя оператор CREATE PROCEDURE. Ссылка .

См. Написание хранимых процедур CLR на C # - Введение в C # (Часть 1)

6
ответ дан 14 December 2019 в 01:07
поделиться

В SQL Server нет встроенного механизма для проверки адресов электронной почты.

Существует множество регулярных выражений для проверки адреса электронной почты (некоторые из них намного длиннее других), например здесь , см., В частности, «Официальный стандарт: RFC 2822» reg ex.

Теперь в SQL Server нет встроенной поддержки для выполнения регулярных выражений, поэтому, если вы действительно хотите сделать это в SQL, вам нужно будет использовать функциональность CLR, то есть написать функцию .NET, которая выполняет проверку, который затем можно вызвать из SQL.

Однако я бы проверил адрес электронной почты раньше, прежде чем он попадет в базу данных.

1
ответ дан 14 December 2019 в 01:07
поделиться

Вы можете написать управляемый SP, используя класс Regex. проверка электронной почты в соответствии с RFC - сложная вещь. Мы просто запрашиваем в AD наличие пользователя.

1
ответ дан 14 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: