All Projects → zzzprojects → Eval Sql.net

zzzprojects / Eval Sql.net

Licence: other
SQL Eval Function | Dynamically Evaluate Expression in SQL Server using C# Syntax

Projects that are alternatives of or similar to Eval Sql.net

Dotmim.sync
A brand new database synchronization framework, multi platform, multi databases, developed on top of .Net Standard 2.0. https://dotmimsync.readthedocs.io/
Stars: ✭ 406 (+383.33%)
Mutual labels:  sql, sql-server
Beekeeper Studio
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Stars: ✭ 8,053 (+9486.9%)
Mutual labels:  sql, sql-server
Go Mysql Server
A MySQL-compatible relational database with a storage agnostic query engine. Implemented in pure Go.
Stars: ✭ 445 (+429.76%)
Mutual labels:  sql, sql-server
Securitydriven.tinyorm
.NET micro ORM done right.
Stars: ✭ 281 (+234.52%)
Mutual labels:  sql, sql-server
Aspnetcorenlog
ASP.NET Core NLog MS SQL Server PostgreSQL MySQL Elasticsearch
Stars: ✭ 54 (-35.71%)
Mutual labels:  sql, sql-server
Text2sql Data
A collection of datasets that pair questions with SQL queries.
Stars: ✭ 287 (+241.67%)
Mutual labels:  sql, evaluation
Tiny tds
TinyTDS - Simple and fast FreeTDS bindings for Ruby using DB-Library.
Stars: ✭ 575 (+584.52%)
Mutual labels:  sql, sql-server
Fluentmigrator
Fluent migrations framework for .NET
Stars: ✭ 2,636 (+3038.1%)
Mutual labels:  sql, sql-server
Server
The core infrastructure backend (API, database, Docker, etc).
Stars: ✭ 8,797 (+10372.62%)
Mutual labels:  sql, sql-server
Naming Convention
Templates for naming convention - TSQL, JavaScript, C#, R, Python, Powershell
Stars: ✭ 961 (+1044.05%)
Mutual labels:  sql, sql-server
Eval Expression.net
C# Eval Expression | Evaluate, Compile, and Execute C# code and expression at runtime.
Stars: ✭ 271 (+222.62%)
Mutual labels:  evaluation, eval
Aceql Http
AceQL HTTP is a framework of REST like http APIs that allow to access to remote SQL databases over http from any device that supports http.
Stars: ✭ 68 (-19.05%)
Mutual labels:  sql, sql-server
eval-estree-expression
Safely evaluate JavaScript (estree) expressions, sync and async.
Stars: ✭ 22 (-73.81%)
Mutual labels:  evaluation, eval
Sqlindexmanager
Free GUI Tool for Index Maintenance on SQL Server and Azure
Stars: ✭ 403 (+379.76%)
Mutual labels:  sql, sql-server
Sqlfiddle3
New version based on vert.x and docker
Stars: ✭ 242 (+188.1%)
Mutual labels:  sql, sql-server
Monitor Table Change With Sqltabledependency
Get SQL Server notification on record table change
Stars: ✭ 459 (+446.43%)
Mutual labels:  sql, sql-server
Denunciado
This project born from the need from people to have a way of communication between municipalities and communities. Some municipalities, have their platforms, but they are complex to validate the veracity of complaints. Denounced, it was born with the purpose of offering a free platform to these municipalities. Denounced consists of three main modules developed with Microsoft technologies, using the .Net Framework and Xamarin for its development: 1. Back End Web Project: Module of administration of the complaints, by the employees of the town councils. In this tool, the employees of the city council receive, validate, report and close the complaints, after being served. 2. Web Portal Client: It consists of a web project, so that the community make their complaints, in the same, the users of the service create a profile, must specify when making their complaint, evidence to support this. Through the portal, they can see the complaints of other community members, follow it, give their opinion or provide possible solutions or more evidence. 3. Mobile Project: It has the same functionalities as the web portal, with the addition, that the automatic location can be sent, from the cell phone.
Stars: ✭ 183 (+117.86%)
Mutual labels:  sql, sql-server
Tsql Parser
Library Written in C# For Parsing SQL Server T-SQL Scripts in .Net
Stars: ✭ 203 (+141.67%)
Mutual labels:  sql, sql-server
Azuredatastudio
Azure Data Studio is a data management tool that enables working with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
Stars: ✭ 6,605 (+7763.1%)
Mutual labels:  sql, sql-server
Reporting Services Examples
📕 Various example reports I use for SQL Server Reporting Services (SSRS) as well as documents for unit testing, requirements and a style guide template.
Stars: ✭ 63 (-25%)
Mutual labels:  sql, sql-server

What's Eval-SQL.Net?

Eval SQL.NET is a library that allows to evaluate dynamically C# expression directly in T-SQL.

It provides to your SQL Server all missing pieces like regular expression and dynamic arithmetic string evaluation.

-- SELECT 3
SELECT  SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result

Try it online

Find your solutions:

  • Dynamic Arithmetic Expression
  • Dynamic Pivot Table
  • Regular Expression
  • String Interpolation
  • Replace xp_cmdshell with DirectoryInfo & FileInfo

Performance & Scalability

Performance tuning is one of the most important tasks for a DBA. Don’t miss the chance to dramatically improve query performance by 300% for simple expression and more than 2000% for complex code over User-Defined Function (UDF) and Table-Valued Function (TVF).

Benchmark to split string with delimiters in SQL

Methods 1,000 rows 10,000 rows 100,000 rows 1,000,000 rows
Eval-SQL.NET 4 ms 13 ms 160 ms 1,650 ms
fn_split (TVF) 100 ms 625 ms 5,500 ms 55,000 ms

Download

Eval-SQL.NET-Install.sql

* PRO Version unlocked for the current month

Minimum Requirements:

  • SQL 2012 / SQL Azure v12
  • SAFE Permission (SQL CLR)

Stay updated with latest changes

Twitter Follow Facebook Like

Evaluate dynamic arithmetic/math expression in SQL

Make the impossible now possible. Evaluate C# expression in SQL to overcome limitations.

  • Allow trusted users to create report field and filter
  • Consume Web Service
  • Replace text in template with String Interpolation
-- CREATE test
DECLARE @table TABLE ( X INT, Y INT, Z INT )
INSERT  INTO @table VALUES  ( 2, 4, 6 ),  ( 3, 5, 7 ), ( 4, 6, 8 )

-- Result: 14, 22, 32
DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z')
SELECT  @sqlnet.ValueInt('x', X)
               .ValueInt('y', Y)
               .ValueInt('z', Z)
               .EvalInt() as Result
FROM    @table

Try it online

Split text with delimiter

Improve performance and capability for splitting text with an easy to use split function and LINQ expression

  • Split text with multiple delimiters
  • Split text using a regular expression
  • Include row index
-- CREATE test
DECLARE @t TABLE (Id INT , Input VARCHAR(MAX))
INSERT  INTO @t VALUES  ( 1, '1, 2, 3; 4; 5' ), ( 2, '6;7,8;9,10' )

-- SPLIT with many delimiters: ',' and ';'
DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")')

SELECT  *
FROM    @t AS A
        CROSS APPLY ( SELECT    *
                      FROM      dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', Input))
                    ) AS B

Try it online

Use regular expression in SQL Server

Use Regex flexibility to overcome “LIKE” and “PATHINDEX” limitations.

  • IsMatch
  • Match
  • Matches
  • Replace
  • Split
DECLARE @customer TABLE ( Email VARCHAR(255) )

INSERT  INTO @customer
VALUES  ( '[email protected]' ),
        ( 'invalid.com' ),
        ( '[email protected]' )

DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, 
@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")')

-- SELECT 'invalid.com'
SELECT * FROM @customer WHERE @valid_email.ValueString('email', Email).EvalBit() = 0

Try it online

Replace xp_cmdshell with restrictive alternative

Avoid enabling xp_cmdshell and compromising your SQL Server and use instead a more restrictive solution.

  • Impersonate Context
  • Improve maintainability
  • Improve readability
  • Improve security
-- REQUIRE EXTERNAL_ACCESS permission
DECLARE @sqlnet SQLNET = SQLNET::New('
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

var dir = new DirectoryInfo(path);
return dir.GetFiles("*.*")
          .Select(x => new { x.FullName, FileContent = File.ReadAllText(x.FullName) })
          .OrderBy(x => x.FullName)')
          .Impersonate()

-- SELECT FullName, FileContext FROM DesktopFiles ORDER BY Fullname
EXEC dbo.SQLNET_EvalResultSet @sqlnet

FREE vs PRO

Features PRO Version
Maximum Characters Unlimited
Commercial License Yes
Support & Upgrades (1 year) Yes

Learn more about the PRO Version

Contribute

The best way to contribute is by spreading the word about the library:

  • Blog it
  • Comment it
  • Fork it
  • Star it
  • Share it

A HUGE THANKS for your help.

More Projects

Contact our outstanding customer support for any request. We usually answer within the next business day, hour, or minutes!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].