SQL Server - Sql Sinamico

   
Vista:

Sql Sinamico

Publicado por Ignacio Monserrat (7 intervenciones) el 08/07/2008 01:40:37
Mi stored procedure lo tengo asi:

use NuevaBase
go
if exists(select routine_name from information_schema.routines where
routine_type='procedure' and routine_name='grp')
drop procedure grp
go
create procedure grp(@rating varchar(14),@tv varchar(10),@marca int)
as
declare @sqlstring as nvarchar(1000)
set @sqlstring='select sum(t_212)as G from [dbo].['+@rating+'] where '+
@tv+'.comercial_id in(select comercial_id from comerciales where producto_id in' +
'(select producto_id from productos where marca_id='+convert(nvarchar(10),@marca) +) '))'+'and '+@rating+ '.dia_hora='+@tv+ '.dia_hora and '+@rating+ '.vehiculo_id=' +@tv+ '.vehiculo_id'
execute sp_executesql @sqlstring
go

exec grp 'rating_2007_01','tv_2007_01',30

Al momento de correrlo me sale el sgte mensaje:

Server: Msg 107, Level 16, State 3, Line 1
The column prefix 'tv_2007_01' does not match with a table name or alias name used in the query.

Pero esa tabla si existe en mi base de datos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sql Sinamico

Publicado por pacopaz (131 intervenciones) el 08/07/2008 15:34:44
Ignacio,
Si existe en tu base de datos(no soy testigo, pero creo en tu palabra), pero no en tu query. Las tablas definidas en el 'from son:
[dbo].['+@rating+']
productos (en el subquery)

Por eso te manda un error, por que aunque exista en tu base de datos, no existe una referencia en el query, como se lee en el error:
Server: Msg 107, Level 16, State 3, Line 1
The column prefix 'tv_2007_01' DOES NOT MATCH WITH A TABLE OR ALIAS NAME USED IN THE QUERY

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar