Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/01/2009, 05:24
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 2 meses
Puntos: 85
Respuesta: Crear tabla temporal con un collation especifico.

Las tablas temporales se crean en la Tempdb, y a menos que se indique lo contrario, heredan el valor de COLLATE o juego de caracteres de dicha base, es en esta posible conversión de caracteres donde se producen los problemas. Hay dos opciones, forzar la creación de la tabla temporal a un COLLATE específico, o bien que herede el COLLATE de la base de datos desde donde se esta creando la tabla.

Opción 1

Código:
create table #t1 (id numeric(8), data varchar(30) collate Modern_Spanish_CI_AS) 
insert into #t1 values (1,'data1')
select * from #t1
drop table #t1
go
Opción 2

Código:
create table #t2 (id numeric(8), data varchar(30) collate database_default) 
insert into #t2 values (2,'data2')
select * from #t2
drop table #t2
go
En lo particular, prefiero la opción 2, ya que tu aplicación podría soportar varios COLLATE y si ese es el caso, no tienes que preocuparte por modificar el código.

Nota, esto también aplica a los tipos de datos TABLE.

Saludos