SQL Server CLR Stored Procedures
2021-09-14
筆記如何使用 Visual Studio 使用 SQL Server Database Project 來設計 C# CLR Stored Procedures / Functions。
說明
建立專案,類型為「SQL Server 資料庫專案」
建立項目,類型為「SQL CLR C# 預存程序」
Coding
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void POC ()
{
SqlPipe sqlPipeLine = SqlContext.Pipe;
sqlPipeLine.Send(DateTime.UtcNow.ToString());
}
}
執行此預存程序可以取得伺服器的日期時間,值得注意的是 SqlPipe Class 🤔
資料庫伺服器設定
資料庫伺服器需要允許執行 .NET CLR
EXEC sp_configure 'clr enabled'
EXEC sp_configure 'clr enabled', 1
RECONFIGURE
驗證
USE master;
EXEC [dbo].[POC];
限制
🚫 無法從 .NET CLR 中進行 WebRequests。
參考資料
How to: Create CLR stored procedure and Work with CLR database object