Para desactivar un trigger temporalmente y luego volver a activarlo, tenemos que hacer lo siguiente:
ALTER TABLE miTabla DISABLE TRIGGER ALL
--aquí ejecutaremos lo que necesitemos y luego lo volvemos a activar
ALTER TABLE miTabla ENABLE TRIGGER ALL
Realmente desactiva todos los triggers de esa tabla, si queremos uno en concreto en lugar de ALL especificamos el nombre del trigger.
lunes, 8 de febrero de 2010
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.

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
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).
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).
miércoles, 30 de septiembre de 2009
Compatibilidad hacia atrás en Office
Mediante la aplicación TlbImp.exe (http://msdn.microsoft.com/es-es/library/tt0cf3sx(VS.80).aspx) podremos convertir un componente COM de Office (por ser el tema del post) en una assembly .NET Interop lista para usar y distribuir con nuestra aplicación. La manera de hacerlo es simple y directa:
1.- Lo primero es localizar dónde está situada la aplicación TlbImp.exe: se encuentra en C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\
(o bien en la unidad dónde tengáis instalado Visual Studio)
2.- Copiamos el fichero (.olb ver último link del post para saber de lo que hablo) que queremos convertir en nuestra dll .NET, en un directorio por ejemplo C:\Interop
3.- Abrimos la línea de comando y vamos hasta la ruta dónde tenemos la aplicación TlbImp y escribimos
C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\TlbImp.exe C:\Interop\MSWord9.olb /out=C:\Interop\FRVSoft.Office.Word.dll
Y ya tendremos creada nuestra dll.
Ahora sólo tenemos que añadirla en las referencias de nuestro proyecto. Con esto conseguimos tener una compatibilidad desde Word 2000 hasta Word 2007. Claro está que si queremos usar alguna característica nueva de Office 2007 no dispondremos de ella en nuestra dll ya que partimos de la versión 2000.
Este enlace os puede ser de utilidad algún día en el futuro, cuando tengáis que pelear con Office desde vuestras aplicaciones, en distintos clientes con diferentes versiones de Office:
http://support.microsoft.com/kb/239930/es
1.- Lo primero es localizar dónde está situada la aplicación TlbImp.exe: se encuentra en C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\
(o bien en la unidad dónde tengáis instalado Visual Studio)
2.- Copiamos el fichero (.olb ver último link del post para saber de lo que hablo) que queremos convertir en nuestra dll .NET, en un directorio por ejemplo C:\Interop
3.- Abrimos la línea de comando y vamos hasta la ruta dónde tenemos la aplicación TlbImp y escribimos
C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\TlbImp.exe C:\Interop\MSWord9.olb /out=C:\Interop\FRVSoft.Office.Word.dll
Y ya tendremos creada nuestra dll.
Ahora sólo tenemos que añadirla en las referencias de nuestro proyecto. Con esto conseguimos tener una compatibilidad desde Word 2000 hasta Word 2007. Claro está que si queremos usar alguna característica nueva de Office 2007 no dispondremos de ella en nuestra dll ya que partimos de la versión 2000.
Este enlace os puede ser de utilidad algún día en el futuro, cuando tengáis que pelear con Office desde vuestras aplicaciones, en distintos clientes con diferentes versiones de Office:
http://support.microsoft.com/kb/239930/es
viernes, 11 de septiembre de 2009
Soluciones a problemas relacionados con T-SQL
Otro link interesante con multitud de soluciones e ideas para abordar los problemas del día a día.
http://code.msdn.microsoft.com/SQLExamples
http://code.msdn.microsoft.com/SQLExamples
Otro eBook por la patilla sobre SQL Server cortesía de Quest Software
Aquí tenéis los link para descargaros SQL Server: A Practical Guide to Backup, Recovery & Troubleshooting con copyright de Quest Software
Parte 1:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_1).pdf
Parte 2:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_2).pdf
Parte 1:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_1).pdf
Parte 2:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_2).pdf
Suscribirse a:
Entradas (Atom)