Problema con Collation (2008-04-08)

08/04/2008 - 11:27 por Mauricio | Informe spam
Hola a todos,
tengo un store procedure que me devuelve las "ramas" de una tabla
que puede estructurarse tipo árbol. En mi servidor funciona
correctamente pero en un cliente me da un error de collation.
Aquí pongo el sp:
/****** Object: StoredProcedure [dbo].[SubArbolProyectos] Script
Date: 04/07/2008 16:38:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SubArbolProyectos]
@IdProyectoRaiz int AS
SET NOCOUNT ON
CREATE TABLE #Proyectos( Nivel smallint, IdProyecto int, NombreProyecto
varchar(50), RutaProyecto varchar(8000),
PRIMARY KEY (Nivel, IdProyecto) ) INSERT INTO #Proyectos(Nivel,
IdProyecto, NombreProyecto, RutaProyecto) SELECT 0, @IdProyectoRaiz,
Nombre, Nombre FROM Proyectos WHERE IdProyecto = @IdProyectoRaiz
DECLARE @Nivel smallint SET @Nivel = 0
HILE 1 = 1
BEGIN
INSERT INTO #Proyectos(Nivel, IdProyecto, NombreProyecto, RutaProyecto)
SELECT @Nivel + 1, P.IdProyecto, P.Nombre, T.RutaProyecto + '\' +
P.Nombre FROM Proyectos P INNER JOIN #Proyectos T ON T.IdProyecto =
P.IdPadre WHERE T.Nivel = @Nivel
IF @@ROWCOUNT = 0
BREAK SET @Nivel = @Nivel + 1
END
SELECT * FROM #Proyectos

El error que le da es este:
Msg 457, Level 16, State 1, Procedure SubArbolProyectos, Line 1
Implicit conversion of varchar value to varchar cannot be performed
because the collation of the value is unresolved due to a collation
conflict.

La tabla Proyectos tiene esta estructura:
CREATE TABLE [dbo].[PROYECTOS](
[IDProyecto] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](50) NOT NULL,
[Comentario] [varchar](5000) NULL,
[IdPadre] [int] NOT NULL,
[Nivel] [tinyint] NULL,
[IdUsuario] [int] NULL,
[Fecha] [datetime] NULL,
[Mojon] [tinyint] NULL,
CONSTRAINT [PK_PROYECTOS] PRIMARY KEY CLUSTERED
(
[IDProyecto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY
= OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Alguien puede decirme qué estoy haciendo mal o dónde está el
problema?
Muchas gracias.

Mauricio
Copenhague, Dinamarca

Preguntas similare

Leer las respuestas

#1 Penta
08/04/2008 - 15:37 | Informe spam
Estimado Mauricio,
El problema se debe a que el Collation no es el mismo en ambas tablas,
puedes cambiar el collation o bien igualarlo en el SP:

SELECT @Nivel + 1, P.IdProyecto, P.Nombre, T.RutaProyecto + '\' +
P.Nombre FROM Proyectos P INNER JOIN #Proyectos T
ON T.IdProyecto collate Modern_Spanish_CI_AS = P.IdPadre collate
Modern_Spanish_CI_AS


Atte.
Penta.
Respuesta Responder a este mensaje
#2 Mauricio
08/04/2008 - 21:03 | Informe spam
Gracias.
Hay alguna forma de hacer el sp independiente de la collation?
Gracias de nuevo.


Penta a présenté l'énoncé suivant :
Estimado Mauricio,
El problema se debe a que el Collation no es el mismo en ambas tablas,
puedes cambiar el collation o bien igualarlo en el SP:

SELECT @Nivel + 1, P.IdProyecto, P.Nombre, T.RutaProyecto + '\' +
P.Nombre FROM Proyectos P INNER JOIN #Proyectos T
ON T.IdProyecto collate Modern_Spanish_CI_AS = P.IdPadre collate
Modern_Spanish_CI_AS


Atte.
Penta.



Mauricio
Copenhague, Dinamarca
Respuesta Responder a este mensaje
#3 Maxi Accotto
09/04/2008 - 02:25 | Informe spam
Hola y con el permiso de Penta! no es una cuestion del SP sino de las tablas
que usted ha creado las cuales en sus columnas tienen diferentes collation.
Cuando usted crea las tablas y columnas le deberia indicar los collation de
forma adeucada, sino tomara los del servidor


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Mauricio" escribió en el mensaje de
noticias:
Gracias.
Hay alguna forma de hacer el sp independiente de la collation?
Gracias de nuevo.


Penta a présenté l'énoncé suivant :
Estimado Mauricio,
El problema se debe a que el Collation no es el mismo en ambas tablas,
puedes cambiar el collation o bien igualarlo en el SP:

SELECT @Nivel + 1, P.IdProyecto, P.Nombre, T.RutaProyecto + '\' +
P.Nombre FROM Proyectos P INNER JOIN #Proyectos T
ON T.IdProyecto collate Modern_Spanish_CI_AS = P.IdPadre collate
Modern_Spanish_CI_AS


Atte.
Penta.



Mauricio
Copenhague, Dinamarca


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