Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Modifica la dimensione dell'immagine da 150 * 150 a 70 * 70 utilizzando la query sql?

Sono d'accordo con i punti di tutti qui, ma se lo si desidera o è necessario, è possibile abilitare l'integrazione CLR su SQL Server, creare un assembly che potrebbe ridimensionare l'immagine e quindi chiamarlo da un trigger o da un processo. Non è molto difficile. Qui una pagina che descrive il processo:http:// msdn.microsoft.com/en-us/library/ms254498(VS.80).aspx

Fondamentalmente per abilitare CLR su SQL Server:

sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO

Crea un assembly c# per ridimensionare la tua immagine:

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
    }
}

Compila l'assieme

csc /target:library ResizeImageProc.cs 

Carica l'assembly in SQL Server:

CREATE ASSEMBLY ResizeImageAssembly from 'c:\ResizeImageProc.dll' WITH PERMISSION_SET = SAFE

Crea il processo

CREATE PROCEDURE ResizeImage AS EXTERNAL NAME ResizeImageAssembly.ResizeImageProc.ResizeImage

Dopodiché puoi chiamarlo come un normale proc. Ad esempio:

EXEC ResizeImage(1,800,600)