- Necesitas terminar cada linea con ;
Para T-SQL es indiferente si la linea la termina con ; o no... igual te va a funcionar.
como no manejo mucho SQL, mas .NET pense que seria asi:
IF @fecha1 > @fecha2 THEN
@campo = 1
END IF
pero claro que no sera igual en las sintaxis ... intente ejecutarlo asi como lo muestro xD obvio que me salto un error: sintaxis incorrecta cerca de la palabra clave THEN .... se que es la misma idea pero diferentes sintaxis.. es en lo unico que me equivoco y en eso quisiera que me ayuden
Bueno si manejas .NET mejor, lo ideal siempre es utiizar en .NET la funcion de COMPARE de las extensiones de los tipos de datos DATE, o DATETIME:
http://msdn.microsoft.com/es-es/library/system.datetime.compare(v=vs.80).aspx
Bueno con respecto a tu pregunta, tienes un grave error en tu Sintaxis de Codigo... Mira la sintaxis de TSQL del IF..ELSE
http://msdn.microsoft.com/es-es/library/ms182717.aspx. OjO, fijate solo lleva
IF y
ELSE. Siempre debes de tener mucho cuidado cuando agarras un nuevo lenguaje de programacion de leerte un poquito la sintaxis de TSQL porque lo querias hacer como VB.NET.
Si @Fecha1 y @Fecha2 los has declarado bn, son de tipo fecha y no hay problema en ese sentido tendrias que ponerlo asi:
IF (@fecha1 > @fecha2) SET @campo = 1
Si vas a necesitar agregar mas de una linea dentro del IF en TSQL existen los bloques BEGIN..END, esto indica un bloque dentro de una estructura de control. Si fueras a incluir mas cosas dentro del IF te quedaria asi:
IF (@fecha1 > @fecha2)
BEGIN
SET @campo = 1
(otras lineas).....
......
.....
END
ELSE
BEGIN
(lineas de ELSE)...
....
....
END
Eso es todo, recuerda, tener mucho cuidado en tu codigo si esta empezando a utilizar MSSQL, la MSDN te ayuda mucho si tiene alguna duda si tu sintaxis esta bn o mal..! Espero q te sirva, cualquier duda me dices..!