Muchos sabemos como realizar el guardado de imagenes y archivos en bases de datos mysql por medio de un campo blob, pero alguna ves lo hemos echo
en sql server por medio de PHP bueno a continuacion les mostrare la forma como se puede hacer.



<?php

// Primero, arranca el bloque PHP y checkea si el archivo tiene nombre.  
// Si no fue asi, te remite de nuevo al formulario de inserción:
// No se comprueba aqui si se ha subido correctamente.

if (empty($_FILES['archivo']['name'])){
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}



//establece una conexión con la base de datos.

$conexion = mssql_connect("xcl-it08","sa","") or die("No se pudo realizar la conexion con el servidor.");
mssql_select_db("clientesdb",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.




// archivo temporal (ruta y nombre).
$binario_nombre_temporal = $_FILES['archivo']['tmp_name'];



// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...

$binario_contenido = base64_encode(addslashes(file_get_content($binario_nombre_temporal, "rb"));



// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];


//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO archivos (archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('".$binario_contenido."', '".$binario_nombre."', '".$binario_peso."', '".$binario_tipo."')";
mssql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: listar_imagenes.php");  // si ha ido todo bien
exit;
?> 

Estructura de la base de datos


CREATE TABLE [archivos] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [archivo_binario] [image] NULL ,
    [archivo_nombre] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL ,
    [archivo_peso] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL ,
    [archivo_tipo] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL ,
    CONSTRAINT [PK_archivos] PRIMARY KEY  CLUSTERED 
    (
        [id]
    )  ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

este script no ha sido testado porfavor disculpa las molestias causadas