sábado, 21 de noviembre de 2009

Tips & Tricks Error SQLFile.sql

Al intentar ejecutar una consulta con el management studio nos da un error:


Para solucionarlo, podemos crearnos en ese mismo directorio un fichero que se llame SQLFile.sql sin contenido, y asunto solucionado. Otra manera es copiar el mismo fichero de otro equipo en el que tengamos SQL Server 2005 o 2008 instalado.

Recetario T-SQL

A groso modo vamos a ver el flujo que sigue una query:

Análisis -- Algebrizer (no se como traducirlo xD) -- Optimización -- Ejecución

Ahora veamos una pregunta que me llegaba vía email:
Supongamos que tenemos una tabla Prueba con dos columnas (IDPrueba y Descripcion), ejecutamos un script que elimina la columna Descripcion de la tabla y más adelante en el script encontramos lo siguiente:
IF 1=0
BEGIN
UPDATE Prueba SET Descripcion='Hola'
WHERE IDPrueba = 1
END
GO

Como 1 no es igual a cero no debe ejecutarse el contenido, pero al ejecutar el script vemos que nos devuelve un error advirtiéndonos de que el campo Descripcion es erróneo.
Mens. 207, Nivel 16, Estado 1, Línea 3
El nombre de columna 'Descripcion' no es válido.

Una solución para que no nos de este error es usar SQL dinámico y nuestro código quedaría tal que así:
IF 1=0
BEGIN
EXECUTE('UPDATE Prueba SET Descripcion=''Hola''
WHERE IDPrueba = 1')
END
GO

miércoles, 11 de noviembre de 2009

Restore Database con SMO C#

Bueno para ir completando la serie de posts con SMO hoy toca el esperado restore. Antes de nada pediros disculpas por no haberlo publicado antes, pero ando liado por casa y no he tenido tiempo para actualizar el blog.

Aquí tenéis el código:



A tener en cuenta: en la cadena de conexión sólo especificad el servidor (Data Source) y el tipo de conexión (si es trusted o con credenciales de sql).