Consulta ....No entiendo......

14/02/2005 - 16:56 por K | Informe spam
Hola grupo una pequeña pregunta
tengo este pequeño codigo donde pregunto si existe mi tabla temporal
si existe le pido que la borre y me ejecute la consulta donde la creo, y
si no que solo ejecute la consulta de creacion...

Pero a la primera que lo ejecuto siempre me sale error de que no existe
la tabla #TempSaldos y que no la puede borrar como que no ejecuta el
ELSE no se porque.

Si alguien me puede decir si alguna parte del codigo esta mal se lo
agradeceria mucho.


IF EXISTS(SELECT('TempDB..#TempSaldos'))
BEGIN
DROP TABLE #TempSaldos

SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS [Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TempSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
ELSE
BEGIN
SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS [Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TemporalSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
GO

Preguntas similare

Leer las respuestas

#1 qwalgrande
14/02/2005 - 17:11 | Informe spam
Hola.

Lo que yo uso para saber si tengo que crear o no la tabla temporal es:

if object_id('tempdb..#TempSaldos) > 0
drop table #TempSaldos

qwalgrande


"" wrote in message
news:el$
Hola grupo una pequeña pregunta
tengo este pequeño codigo donde pregunto si existe mi tabla temporal
si existe le pido que la borre y me ejecute la consulta donde la creo, y
si no que solo ejecute la consulta de creacion...

Pero a la primera que lo ejecuto siempre me sale error de que no existe
la tabla #TempSaldos y que no la puede borrar como que no ejecuta el
ELSE no se porque.

Si alguien me puede decir si alguna parte del codigo esta mal se lo
agradeceria mucho.


IF EXISTS(SELECT('TempDB..#TempSaldos'))
BEGIN
DROP TABLE #TempSaldos

SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS [Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TempSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
ELSE
BEGIN
SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS [Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TemporalSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
GO
Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
14/02/2005 - 17:25 | Informe spam
En el IF verifica la existencia de la tabla temporaria de esta manera:

if exists (select * from dbo.sysobjects
where id = object_id(N'[tempdb].[dbo].[#TempSaldos]')
and OBJECTPROPERTY(id, N'IsTable') = 1)

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"" wrote in message
news::
Hola grupo una pequeña pregunta
tengo este pequeño codigo donde pregunto si existe mi tabla temporal
si existe le pido que la borre y me ejecute la consulta donde la creo, y
si no que solo ejecute la consulta de creacion...

Pero a la primera que lo ejecuto siempre me sale error de que no existe
la tabla #TempSaldos y que no la puede borrar como que no ejecuta el
ELSE no se porque.

Si alguien me puede decir si alguna parte del codigo esta mal se lo
agradeceria mucho.


IF EXISTS(SELECT('TempDB..#TempSaldos'))
BEGIN
DROP TABLE #TempSaldos

SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS
[Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TempSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
ELSE
BEGIN
SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS
[Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TemporalSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
GO
Respuesta Responder a este mensaje
#3 K
14/02/2005 - 17:48 | Informe spam
Hola otra vez, he probado con ambas recomendaciones y me
sigue dando problemas cuando ejecuto me dice que ..

Ya hay un objeto con el nombre '#TempSaldos' en la base de datos.

y cuando trato de borrarlo con el Drop me dice

No se puede drop tabla '#TempSaldos' porque no existe en el catálogo del
sistema.

No entiendo porque ... :-(

if exists (Select * from dbo.sysobjects where id object_id(N'[tempdb].[dbo].[#TempSaldos]')and OBJECTPROPERTY(id, N'IsTable')
= 1)
BEGIN
DROP TABLE #TempSaldos

SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS [Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TempSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
ELSE
BEGIN
SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS [Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TempSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
GO

"" escribió en el mensaje
news:el$
Hola grupo una pequeña pregunta
tengo este pequeño codigo donde pregunto si existe mi tabla temporal
si existe le pido que la borre y me ejecute la consulta donde la creo, y
si no que solo ejecute la consulta de creacion...

Pero a la primera que lo ejecuto siempre me sale error de que no existe
la tabla #TempSaldos y que no la puede borrar como que no ejecuta el
ELSE no se porque.

Si alguien me puede decir si alguna parte del codigo esta mal se lo
agradeceria mucho.


IF EXISTS(SELECT('TempDB..#TempSaldos'))
BEGIN
DROP TABLE #TempSaldos

SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS


[Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TempSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
ELSE
BEGIN
SELECT IDENTITY(int, 1, 1) AS Corr,MovimientosCompletos.Movimiento AS


[Nº
Movimiento],
MovimientosCompletos.CodigoArticulo,
MovimientosCompletos.FechaMovimiento,
MovimientosCompletos.Cantidad
INTO #TemporalSaldos
FROM MovimientosCompletos
WHERE MovimientosCompletos.CodigoArticulo='TRMEBP50W 03'
ORDER BY
MovimientosCompletos.FechaMovimiento,MovimientosCompletos.Movimiento
END
GO


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida