sql >> Database >  >> RDS >> Sqlserver

Afbeeldingsgrootte wijzigen van 150 * 150 in 70 * 70 bij het gebruik van sql-query?

Ik ben het eens met de punten van iedereen hier, maar als je echt wilde of moest, zou je CLR-integratie op de SQL Server kunnen inschakelen, een assembly maken die de grootte van je afbeelding kan wijzigen en deze vervolgens vanuit een trigger of proc kunnen aanroepen. Het is niet erg moeilijk. Hier een pagina die het proces beschrijft:http:// msdn.microsoft.com/en-us/library/ms254498(VS.80).aspx

Om CLR op de SQL Server in te schakelen:

sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO

Maak een c#-assembly om het formaat van uw afbeelding te wijzigen:

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

Stel de montage samen

csc /target:library ResizeImageProc.cs 

Laad de assembly in de SQL Server:

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

Maak het proces

CREATE PROCEDURE ResizeImage AS EXTERNAL NAME ResizeImageAssembly.ResizeImageProc.ResizeImage

Daarna kun je het als een normale proc noemen. Bijvoorbeeld:

EXEC ResizeImage(1,800,600)


  1. Hoe byte-array naar blob te converteren

  2. Kan ik SQL-selecties opnieuw ordenen nadat de limiet is toegepast?

  3. Java-query met DB Link sluit de Db Link-verbinding niet

  4. Twee vragen voor het opmaken van tijdstempel en nummer met postgresql