SQL CLR Library , SQLCLR , CLR Routines , CLR Library , SQL Server CLR , Bulk Export , Regular Expressions , HTML Export , Generate Insert Statements , Median , Automation , RegEx 2017-4-28 15-42
SQL# / SQLsharp                   SQL #         Expanding the
capabilities of T-SQL
       Home       Features       Benefits       F.A.Q.       Contact Us 
     Full Version       Free Version       Documentation 
❗❗ Version 4.0 Announcement ❗❗
  SQL CLR Library , SQLCLR , CLR Routines , CLR Library , SQL Server CLR , Bulk Export , Regular Expressions , HTML Export , Generate Insert Statements , Median , Automation , RegEx
Version 4.0 is now publicly available!. "What's New" info has been added to the History page. Please review as there have been a lot of changes :-).


Some highlights of the new release are:
  • New functionality
    Over 60 new Functions and Stored Procedures!

  • Improved performance
    Faster code for many RegEx functions, some FileSystem functions, and others. More "4k" versions of RegEx and String functions (they perform better than functions using NVARCHAR(MAX) parameters and should be used when the input is guaranteed to be <= 4000 characters). All 4 String_Levenshtein* functions now have a @MaxDistance input parameter that will exit upon reaching that value rather than wasting cycles by running through the entire comparison.

  • Improved security
    Main SQL# Assembly never needs to be set to EXTERNAL_ACCESS / will always be set to SAFE. Next release (after 4.0) will complete the separation of functionality requiring elevated permissions to separate Assemblies across all functional areas. Meaning, Assemblies will only ever need to be at a single security level (i.e. PERMISSION_SET). Functionality requiring elevated permissions will (after the next release) never require code not needing the elevated permissions to be set to the elevated level; all SAFE code will be isolated into Assemblies that will always be marked as SAFE.

  • Improved usability
    Better NULL handling across many functions (i.e. instantly return NULL instead of error). Most functionality requiring elevated permissions now returns an error message with the query to execute in order to fix the error (e.g. "EXEC SQL#.SQLsharp_SetSecurity 2, N'SQL#.DB';"). New T-SQL stored procedure to unload all App Domains from the current Database (not all databases!), just in case an external resource – such as a file – gets locked by SQL Server (which can happen if the process is killed before the lock is released). And many other improvements.

  • Improved internationalization (i18n)
    @FileEncoding input parameters (on FileSystem, DB, and INET functions / stored procedures) now accept any valid Code Page / Encoding name. Twitter functions now properly return Supplementary Characters (typically used for emoji).

  • Improved installation / uninstallation
    New install option for Maximum Security Level. Level 0 is a new concept for shared environmnets where there is no Instance-level access. This level will skip creating the Asymmetric Key and the Key-based Login in [master], and will skip installing Assemblies that do not have any SAFE code (since SAFE will be the only level allowed without having the Key-based Login).

    New T-SQL stored procedures have been added. One exists in the DB where SQL# is installed and will re-install the Asymmetric Key and Key-based Login into [master]. This will help when restoring a DB containing SQL# onto an Instance that never had it, hence it would be missing those objects in [master]. With this new stored procedure, the install script won't need to be executed again. And there is a new stored procedure in [master] that will uninstall the Key-based Login, the Asymmetric Key, and finally itself.

  • Bug fixes


  • Non-visible Improvements
    A lot of technical debt has been removed. Code has been re-reviewed (some of it has been around for nearly 11 years!) and updated for best practices and knowledge gained over those 11 years. Build process has been improved, making it easier to add functionality, new Assemblies, and hence provide future updates on a more regular basis.
There will also be a new, more comprehensive License Agreement as well as a new pricing structure (i.e. price increase)!

If you are a customer but do not have your License Key, please use the "Contact Us" page to request that your License Key be sent to you. You will need to include your company name and the name and email address used to purchase SQL# via PayPal.

More details to be published here soon.

SQL CLR Library , CLR Routines , CLR Library , SQL Server CLR , Bulk Export , Regular Expressions , HTML Export , Generate Insert Statements 2017-4-28 15-42