This document discusses CLR stored procedures in SQL Server. CLR stored procedures allow code written in .NET languages like C# and VB.NET to be run from within the database. They provide benefits like better performance for complex operations like string manipulation and cryptography compared to regular SQL stored procedures. CLR stored procedures also enable object-oriented programming features. However, they have drawbacks like being more difficult to deploy than regular stored procedures. The document covers configuration, usage, debugging and deployment of CLR stored procedures.
2. Agenda SQL CLR CLR Stored Procedures The Need For CLR Stored Procedures Drawbacks Configuration How to use (demo) Debugging SQL CLR DLLs External Access External Access (demo) Deployment
3. SQL CLR ? Is the technology that hosts the Microsoft .NET Common Language Runtime engine within SQL Server. SQLCLR allows managed code to be hosted by, and run in, the Microsoft SQL Server environment
4. CLR Stored Procedures Similar to normal Stored Procedures, but code written using Microsoft .NET (C#, VB.NET or any language in .NET) Works as an MSIL assembly integrated with the SQL Engine.
5. The Need For CLR Stored Procedures Gives better results while executing complex logic: Intense string operations/string manipulation Cryptography Accessing system resources File Management CLR Stored Procedures are managed code Ensures type safety Ensures memory management
6. The Need For CLR Stored Procedures Better code management Provides object oriented programming Encapsulation Polymorphism Inheritance Can be written using C# VB Any other language that the .NET Framework supports
7. Drawbacks Not convenient in all scenarios E.g. they should not be used to execute simple queries. Deployment may be difficult in some scenarios.
15. Q & A What Sgen.exe does ? The XML Serializer Generator creates an XML serialization assembly for types in a specified assembly in order to improve the startup performance of a XmlSerializer when it serializes or deserializesobjects of the specified types.
16. Q & A What is the deference between PERMISSION_SET SAFE, EXTERNAL_ACCESS and UNSAFE ? Code executed by an assembly with SAFE permissions cannot access external system resources such as files, the network, environment variables, or the registryand EXTERNAL_ACCESS can access. UNSAFE enables assemblies unrestricted access to resources, both within and outside an instance of SQL Server. Code running from within an UNSAFE assembly can call unmanaged code.
17. Q & A List down Benefits of using CLR Stored Procedures See the “The Need For CLR Stored Procedures” in presentation.