26/01/2009, 05:46
|
| | Fecha de Ingreso: junio-2003 Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 7 meses Puntos: 7 | |
Respuesta: Crear tabla temporal con un collation especifico. Bueno, en prmer lugar, muchisimas gracias por contestarme... estoy en el trabajo y estoy atascadisimo con esto...
Verás hice lo que me comentaste, probé con las dos formas y a la hora de hacer una consulta cruzada con esta tabla, me está dando el mismo mensaje:
He probado de estas formas
Código:
--Se que es este collate el que tengo que convertir, ya me fije en las tablas
CREATE TABLE #TBAREMOS_DETALLE (COD_ACTOMEDICO CHAR(12), DES_ACTOMEDICO NVARCHAR(300), IND_REQUIEREAUTORIZACION CHAR(1),
[COD_ESTADO] [char](6) NULL,
[IMP_PRECIO] [numeric](9, 2) NULL, [IND_VISIBLESOLICITUD] [CHAR](1),
[IND_BAREMOEDITABLE] [CHAR](1), [DES_PROCEDENCIA] [VARCHAR](20) collate SQL_Latin1_General_CP1_CI_AS)
-- Y CON LA BASE DE DATOS DEFAULT:
CREATE TABLE #TBAREMOS_DETALLE (COD_ACTOMEDICO CHAR(12), DES_ACTOMEDICO NVARCHAR(300), IND_REQUIEREAUTORIZACION CHAR(1),
[COD_ESTADO] [char](6) NULL,
[IMP_PRECIO] [numeric](9, 2) NULL, [IND_VISIBLESOLICITUD] [CHAR](1),
[IND_BAREMOEDITABLE] [CHAR](1), [DES_PROCEDENCIA] [VARCHAR](20) collate database_default)
Sin embargo, me sale exactamente el mismo error. Una vez he creado la tabla temporal. Ejecuto dos sentencias. Una de insercción que la hace correcta y la segunda de actualización, qeu es donde me falla.
Código:
--DROP TABLE #TBAREMOS_DETALLE
CREATE TABLE #TBAREMOS_DETALLE (COD_ACTOMEDICO CHAR(12), DES_ACTOMEDICO NVARCHAR(300), IND_REQUIEREAUTORIZACION CHAR(1),
[COD_ESTADO] [char](6) NULL,
[IMP_PRECIO] [numeric](9, 2) NULL, [IND_VISIBLESOLICITUD] [CHAR](1),
[IND_BAREMOEDITABLE] [CHAR](1), [DES_PROCEDENCIA] [VARCHAR](20) collate SQL_Latin1_General_CP1_CI_AS)
--OK
INSERT INTO #TBAREMOS_DETALLE
SELECT SAM.COD_ACTOMEDICO, SAM.DES_ACTOMEDICO, SAM.IND_REQUIEREAUTORIZACION,
SB.COD_ESTADO,
IMP_PRECIO, SAM.IND_VISIBLESOLICITUD,
SAM.IND_BAREMOEDITABLE, '2' DES_PROCEDENCIA
FROM SALUD.dbo.SI_BAREMOS_DETALLES SB
RIGHT JOIN SALUD.dbo.SI_ACTOS_MEDICOS SAM
ON SB.COD_ACTOMEDICO= SAM.COD_ACTOMEDICO
AND (SB.COD_BAREMO IS NULL or SB.COD_BAREMO = @COD_BAREMO)
WHERE (SAM.COD_GRUPO=@COD_GRUPO AND SAM.COD_ESPECIALIDAD_FACTURACION=@COD_ESPECIALIDAD
AND SAM.COD_SUBESPECIALIDAD_FACTURACION=@COD_SUBESPECIALIDAD)
AND SAM.COD_ESTADO='ATOACT'
AND (sb.cod_estado='BARACT' OR sb.cod_estado IS NULL)
--FALLA
UPDATE #TBAREMOS_DETALLE SET TBD.IMP_PRECIO=SBD.IMP_PRECIO,
TBD.DES_PROCEDENCIA='1'
FROM #TBAREMOS_DETALLE TBD
INNER JOIN SI_BAREMOS_DETALLES SBD
ON SBD.COD_ACTOMEDICO=TBD.COD_ACTOMEDICO
AND TBD.COD_ESTADO='BARACT'
INNER JOIN SI_BAREMOS SB
ON SBD.COD_BAREMO=SB.COD_BAREMO
AND SB.IND_GENERAL='S'
AND SB.COD_DELEGACION=@COD_DELEGACION
AND FEC_COBERTURADESDE >= @FECHA_ACTUAL
AND FEC_COBERTURAHASTA <= @FECHA_ACTUAL
¿Alguna idea?
__________________ Charlie. |