跳到主要內容

[MS SQL] SQL CLR 外掛程式

寫C#程式掛在SSMS

1. 寫好 .cs 檔
步驟:新增 SQL Server 專案 --> 在加入 使用者定義函式 --> 撰寫程式

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString SqlFunction1()
    {
        // 將程式碼放在此處
        return new SqlString (string.Empty);
    }
}



2. 在CMD下指令:

C:\Windows\Microsoft.NET\Framework\v3.5> csc.exe /t:library /out:FunName.dll c:\FunName.cs

//FunName.dll 檔案會在 C:\Windows\Microsoft.NET\Framework\v3.5

3.在SSMS下指令

Use DBName 
ALTER DATABASE master SET TRUSTWORTHY ON
Go

--Create Assembly 
--PERMISSION_SET特殊使用才需要設定為UNSAFE (注意程式是否有Console)
Use DBName 
Create ASSEMBLY AssemblyName
FROM 'c:\FunName.dll'
WITH PERMISSION_SET = SAFE
GO

--建立函數Create Function
CREATE FUNCTION FunName(@sText nvarchar(4000)
RETURNS NVARCHAR(4000) WITH EXECUTE AS CALLER
AS EXTERNAL NAME AssemblyName.ClassName.FunName

--執行SQL Function
select FunName( 'parameter' ) 



參考連結
SQL CLR的介紹與範例說明
SQL - 使用 SQLCLR 來實作 SPLIT
How to: Create and Run a SQL Server User-Defined Function by using Common Language Run-time Integration

留言

這個網誌中的熱門文章

[python] python 時區轉換 ( timezone )

python 時區轉換 import datetime as dt import pytz d = dt.datetime(2019,1,1,14,0,0) #create Taipei timezone tw = pytz.timezone('Asia/Taipei') #set d timezone is 'Asia/Taipei' twdt = tw.localize(d) #change to utc time utc_dt = twdt.astimezone(pytz.utc) *注意 網路上很多使用 d.replace(tzinfo=tw)   但是可能會出現時差問題, 如下: datetime.time(23, 18, 5, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>) 參考文件 python时区设置——pytz模块

[HTML] 文字浮水印效果 text watermark css

[.css] .info-mask {     height: 0;       position: absolute;       margin-top:120px;   } .info-opacity {     opacity: 0.8;     color: black; } .info-text {     color: gray;     font-size: 40px;     -webkit-transform: rotate(-5deg);       line-height: 60px;     max-width:1200px;     letter-spacing:3px;     padding-left:0.8em; } [.html]     <div class="info-mask">         <p class="info-text">             WaterMarkText         </p>     </div>    <table class="table table-bordered table-striped table-responsive table-hover" style="position:                 relative;" >        <tbody class="info-opacity" >        </tbody>    </table>

[GCP] Google Cloud Platform 搬移 VM & cloud sql & datastore

建立同VM 同專案 VM  建立快照 --> 用快照建立新的VM 跨專案 VM  建立快照  --> 用快照建立映像檔 --> 用印象檔建立新的VM Notice  開機磁碟: 自訂映像檔->選擇印象檔 搬移cloud sql step 1. A SQL [Top option] '匯出' setting Bucket and formate is 'SQL' step 2. B SQL [Top option] '匯入' setting Bucket and formate is 'SQL' Bucket path: gs://{Bucket}/file.sql Notice   不同專案的gs要有權限讀取 搬移 datastore 詳細請參考: https://cloud.google.com/datastore/docs/export-import-entities   step 1. 'new' project [menu] 資料儲存庫 -> 啟用datastore step 2. gcloud terminal gcloud auth login  gcloud config set project <projectid> gcloud beta datastore export --kinds=" <KIND> " gs:// <BUCKET> gcloud config set project new-projectid gcloud datastore export gs:// <BUCKET> Notice  跨專案gs storage auth 需要新增  xxx@appspot.gserviceaccount.com  [storage BUCKET 讀取者] 權限