In this example we will write function for matching regular expression
In the SQl Server side, we will need to enable the CLR(Common Language Runtime) of .NET:
In order to be able to use a method from any DLL, we should create a function or store procedure by using an external name:
Here it goes an example for a query:
You can use check constraints in a table to validate well constructed data in the database.
For example:
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Collections;
namespace SqlRegularExpression
{
public partial class RegularExpression
{
[SqlFunction]
public static bool Like(string text, string pattern)
{
Match match = Regex.Match(text, pattern);
return (match.Value != String.Empty);
}
}
}
In the SQl Server side, we will need to enable the CLR(Common Language Runtime) of .NET:
SELECT * FROM sys.configurations where name = 'user connections'
sp_configure 'clr enabled', 1 GO RECONFIGURE GO CREATE ASSEMBLY SqlRegularExpression from 'C:\anyFolder\SqlRegularExpression.dll' WITH PERMISSION_SET = SAFE --- please check folder name Go
In order to be able to use a method from any DLL, we should create a function or store procedure by using an external name:
CREATE FUNCTION RegExpLike(@Text nvarchar(max), @Pattern nvarchar(255)) RETURNS BIT AS EXTERNAL NAME SqlRegularExpression.[SqlRegularExpression.RegularExpression].[Like] go
Here it goes an example for a query:
select dbo.RegExpLike('Roy Jimenez', '^[a-zA-Z''.\s]{1,40}$');
go
You can use check constraints in a table to validate well constructed data in the database.
For example:
create table Users (
login varchar(15) not null check ( dbo.RegExpLike(login, '^[A-Za-z0-9_]*$') = 1 ),
name varchar(100) not null
)
go