Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

MSSQL - El nombre de objeto 'NN' no es válido

Estas en el tema de MSSQL - El nombre de objeto 'NN' no es válido en el foro de Bases de Datos General en Foros del Web. Hola a todos: Estoy intentando hacer un nuevo procedimiento almacenado, pero me está volviendo loco. Si lo pruebo en el servidor local funciona de maravillas, ...
  #1 (permalink)  
Antiguo 23/05/2005, 13:57
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 2 meses
Puntos: 1
MSSQL - El nombre de objeto 'NN' no es válido

Hola a todos:
Estoy intentando hacer un nuevo procedimiento almacenado, pero me está volviendo loco.
Si lo pruebo en el servidor local funciona de maravillas, pero cuando intento probarlo en el servidor web me muestra el siguiente mensaje:

El nombre de objeto 'eventos' no es válido

Aclaro que la tabla con el nombre 'eventos' existe.

Si lo hago de esta forma no funciona
Código:
CREATE PROCEDURE sst_search_events
	(
	@lengua	varChar(1)	= "S",
	@area	varChar(3)	= "%",
	@search	varChar(250)	
	)
AS

	SELECT TOP 6 	'_events_view.asp?event=' + CAST(e.id_evento AS varchar(6)), 
			e.fecha, 
			e.titulo, 
			e.e_titulo, 
			e.p_titulo, 
			e.pais, 
			e.e_pais, 
			e.p_pais,
			KEY_EVENTS.[RANK]
	FROM 	eventos AS e INNER JOIN
		CONTAINSTABLE(eventos, *,  @search) AS KEY_EVENTS 
		ON e.id_evento = KEY_EVENTS.[KEY] 
	WHERE KEY_EVENTS.[RANK] > 10
		AND e.area LIKE @area
		AND e.lengua LIKE @lengua 
UNION
	SELECT TOP 6	'_events_detail.asp?det=' + CAST(d.id_evento_sub AS varchar(6)), 
			even.fecha, 
			d.titulo, 
			d.titulo, 
			d.titulo, 
			even.titulo, 
			even.e_titulo, 
                        	even.p_titulo,
			KEY_EVENTS.[RANK]
	FROM 	eventos_sub AS d INNER JOIN eventos AS even 
		ON d.id_evento_cab = even.id_evento INNER JOIN
		CONTAINSTABLE(eventos_sub, *,  @search) AS KEY_EVENTS 
		ON d.id_evento_sub = KEY_EVENTS.[KEY] 
	WHERE KEY_EVENTS.[RANK] > 10
		AND d.lengua LIKE @lengua

ORDER BY [RANK] DESC
Pero si pruebo con esto funciona bien

Código:
CREATE PROCEDURE st_search_events_sub
	(
	@lengua	varChar(1)	= "S",
	@area		varChar(3)	= "%",
	@search	varChar(250)	
	)
AS
EXECUTE('
	SELECT TOP 6 e.id_evento, e.fecha, e.titulo, e.e_titulo, e.p_titulo, pais, e_pais, p_pais 
	FROM 	eventos AS e INNER JOIN		
		CONTAINSTABLE(eventos, *,  '' ' + @search + ' '') AS KEY_EVENTS 
		ON e.id_evento = KEY_EVENTS.[KEY] 
	WHERE KEY_EVENTS.[RANK] > 10
		AND e.area LIKE ''%' + @area + '%''
		AND e.lengua LIKE ''%' + @lengua + '%''
	ORDER BY KEY_EVENTS.[RANK] DESC, fecha DESC
	
	')
¿Qué puede estar pasando, que hago mal?

Última edición por PMP; 23/05/2005 a las 14:12
  #2 (permalink)  
Antiguo 23/05/2005, 15:42
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
¿Quien es el owner de tu SP?
¿Quien es el owner de tu tabla?
¿Has probado usar el prefijo del owner(dbo.miSP, dbo.miTabla)?
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 24/05/2005, 05:18
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 2 meses
Puntos: 1
Muchísimas gracias Mithrandir, ha funcionado perfectamente.
Lo he solucionado poniendo el prefijo de propietario a la tabla.

Saludos.
  #4 (permalink)  
Antiguo 24/05/2005, 14:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25


Siempre es recomendado que el dueño de todos los objetos sea dbo, SQL Server permite tener varios dueños, aunque todos advierten de que se puede complicar la administracion (como tu caso) y se recomienda que todo pertenezca a dbo.

Si te interesa cambia el dueño de los objetos con sp_changeobjectowner
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:26.