ここで皆さんの意見に同意しますが、本当にしたい、またはしなければならなかった場合は、SQL Server で CLR 統合を有効にし、イメージのサイズを変更できるアセンブリを作成して、それをトリガーまたはプロシージャから呼び出すことができます。それほど難しくありません。このプロセスを説明するページ:http:// msdn.microsoft.com/en-us/library/ms254498(VS.80).aspx
基本的に SQL Server で CLR を有効にするには:
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
画像のサイズを変更するための C# アセンブリを作成します:
using System;
using System.Data;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
public class ResizeImageProc
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void ResizeImage(int ImageID, int width, int height)
{
//TODO: ResizeImage Code
}
}
アセンブリをコンパイルします
csc /target:library ResizeImageProc.cs
アセンブリを SQL Server に読み込みます:
CREATE ASSEMBLY ResizeImageAssembly from 'c:\ResizeImageProc.dll' WITH PERMISSION_SET = SAFE
プロシージャを作成する
CREATE PROCEDURE ResizeImage AS EXTERNAL NAME ResizeImageAssembly.ResizeImageProc.ResizeImage
その後、通常のプロシージャのように呼び出すことができます。例:
EXEC ResizeImage(1,800,600)