forzar el refresco de vistas

22/11/2005 - 16:37 por .·:m·a·r·l·a:·. | Informe spam
Hola a todos

me he encontrado con un problema, para mi sorprendente,

el caso es que he cambiado la definicion de uno de los campos (llamemosle
campoX) de 2 a 4 caracteres en una tabla

esta tabla junto a otras (similar estructura) es usada en una vista que las
une (UNION) teniendo la primera tabla de dicha union el campoX igual a 2
caracteres

pruebo la vista desde el propio servido y me da correctamente valores de
hasta 4 caracteres provinientes de la tabla actualizada

pero cuando esta vista es usada en uno de los linked servers o applicaciones
de acess tan solo devuelve los dos primeors caracteres

es como si en algun lugar se guardara memoria de los tamaños de los campos
de las vistas, y habiendo sido el maximo anterior 2 , ahora no reconoce los
4 caracteres

alguien me puede dar una ayudita ??

gracias por adelantado

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
22/11/2005 - 17:22 | Informe spam
Trata ejecutando este script en sql server y luego vuelve a linkear la vista
en access.

use northwind
go

declare @sql nvarchar(4000)
declare @ts sysname
declare @tn sysname
declare views_cursor cursor
local
fast_forward
for
select
TABLE_SCHEMA,
TABLE_NAME
from
INFORMATION_SCHEMA.TABLES
where
TABLE_TYPE = 'VIEW'
and objectproperty(object_id(quotename(TABLE_SCHEMA) + '.' +
quotename(TABLE_NAME)), 'IsMSShipped') = 0

open views_cursor

while 1 = 1
begin
fetch next from views_cursor into @ts, @tn

if @@error != 0 or @@fetch_status != 0 break

set @sql = N'exec sp_refreshview ''' + quotename(@ts) + '.' +
quotename(@tn) + N''''

print @sql
exec sp_executesql @sql
end

close views_cursor
deallocate views_cursor
go


AMB

".·:m·a·r·l·a:·." wrote:

Hola a todos

me he encontrado con un problema, para mi sorprendente,

el caso es que he cambiado la definicion de uno de los campos (llamemosle
campoX) de 2 a 4 caracteres en una tabla

esta tabla junto a otras (similar estructura) es usada en una vista que las
une (UNION) teniendo la primera tabla de dicha union el campoX igual a 2
caracteres

pruebo la vista desde el propio servido y me da correctamente valores de
hasta 4 caracteres provinientes de la tabla actualizada

pero cuando esta vista es usada en uno de los linked servers o applicaciones
de acess tan solo devuelve los dos primeors caracteres

es como si en algun lugar se guardara memoria de los tamaños de los campos
de las vistas, y habiendo sido el maximo anterior 2 , ahora no reconoce los
4 caracteres

alguien me puede dar una ayudita ??

gracias por adelantado



Respuesta Responder a este mensaje
#2 Eleazar Nuñez
22/11/2005 - 17:28 | Informe spam
Hola si solo cambiaste el tamaño de un campo de la tabla fisica que ocupas
en la vista, creo que te falta hacer drop view y luego create view
o en su defecto solo alter view para actualizar la vista

".·:m·a·r·l·a:·." escribió en el mensaje
news:
Hola a todos

me he encontrado con un problema, para mi sorprendente,

el caso es que he cambiado la definicion de uno de los campos (llamemosle
campoX) de 2 a 4 caracteres en una tabla

esta tabla junto a otras (similar estructura) es usada en una vista que


las
une (UNION) teniendo la primera tabla de dicha union el campoX igual a 2
caracteres

pruebo la vista desde el propio servido y me da correctamente valores de
hasta 4 caracteres provinientes de la tabla actualizada

pero cuando esta vista es usada en uno de los linked servers o


applicaciones
de acess tan solo devuelve los dos primeors caracteres

es como si en algun lugar se guardara memoria de los tamaños de los campos
de las vistas, y habiendo sido el maximo anterior 2 , ahora no reconoce


los
4 caracteres

alguien me puede dar una ayudita ??

gracias por adelantado


Respuesta Responder a este mensaje
#3 Alejandro Mesa
22/11/2005 - 22:43 | Informe spam
En caso de que desees refrezcar una sola vista pues basta con usar
sp_refreshview.

Ejemplo:

use mi_db
go

exec sp_refreshview 'dbo.mi_vista'
go


AMB

"Alejandro Mesa" wrote:

Trata ejecutando este script en sql server y luego vuelve a linkear la vista
en access.

use northwind
go

declare @sql nvarchar(4000)
declare @ts sysname
declare @tn sysname
declare views_cursor cursor
local
fast_forward
for
select
TABLE_SCHEMA,
TABLE_NAME
from
INFORMATION_SCHEMA.TABLES
where
TABLE_TYPE = 'VIEW'
and objectproperty(object_id(quotename(TABLE_SCHEMA) + '.' +
quotename(TABLE_NAME)), 'IsMSShipped') = 0

open views_cursor

while 1 = 1
begin
fetch next from views_cursor into @ts, @tn

if @@error != 0 or @@fetch_status != 0 break

set @sql = N'exec sp_refreshview ''' + quotename(@ts) + '.' +
quotename(@tn) + N''''

print @sql
exec sp_executesql @sql
end

close views_cursor
deallocate views_cursor
go


AMB

".·:m·a·r·l·a:·." wrote:

> Hola a todos
>
> me he encontrado con un problema, para mi sorprendente,
>
> el caso es que he cambiado la definicion de uno de los campos (llamemosle
> campoX) de 2 a 4 caracteres en una tabla
>
> esta tabla junto a otras (similar estructura) es usada en una vista que las
> une (UNION) teniendo la primera tabla de dicha union el campoX igual a 2
> caracteres
>
> pruebo la vista desde el propio servido y me da correctamente valores de
> hasta 4 caracteres provinientes de la tabla actualizada
>
> pero cuando esta vista es usada en uno de los linked servers o applicaciones
> de acess tan solo devuelve los dos primeors caracteres
>
> es como si en algun lugar se guardara memoria de los tamaños de los campos
> de las vistas, y habiendo sido el maximo anterior 2 , ahora no reconoce los
> 4 caracteres
>
> alguien me puede dar una ayudita ??
>
> gracias por adelantado
>
>
>
Respuesta Responder a este mensaje
#4 .·:m·a·r·l·a:·.
29/11/2005 - 15:38 | Informe spam
gracias

si que me ha servido, no sabia que SQL guardaba definiciones de las vistas


"Alejandro Mesa" wrote in message
news:
En caso de que desees refrezcar una sola vista pues basta con usar
sp_refreshview.

Ejemplo:

use mi_db
go

exec sp_refreshview 'dbo.mi_vista'
go


AMB

"Alejandro Mesa" wrote:

> Trata ejecutando este script en sql server y luego vuelve a linkear la


vista
> en access.
>
> use northwind
> go
>
> declare @sql nvarchar(4000)
> declare @ts sysname
> declare @tn sysname
> declare views_cursor cursor
> local
> fast_forward
> for
> select
> TABLE_SCHEMA,
> TABLE_NAME
> from
> INFORMATION_SCHEMA.TABLES
> where
> TABLE_TYPE = 'VIEW'
> and objectproperty(object_id(quotename(TABLE_SCHEMA) + '.' +
> quotename(TABLE_NAME)), 'IsMSShipped') = 0
>
> open views_cursor
>
> while 1 = 1
> begin
> fetch next from views_cursor into @ts, @tn
>
> if @@error != 0 or @@fetch_status != 0 break
>
> set @sql = N'exec sp_refreshview ''' + quotename(@ts) + '.' +
> quotename(@tn) + N''''
>
> print @sql
> exec sp_executesql @sql
> end
>
> close views_cursor
> deallocate views_cursor
> go
>
>
> AMB
>
> ".·:m·a·r·l·a:·." wrote:
>
> > Hola a todos
> >
> > me he encontrado con un problema, para mi sorprendente,
> >
> > el caso es que he cambiado la definicion de uno de los campos


(llamemosle
> > campoX) de 2 a 4 caracteres en una tabla
> >
> > esta tabla junto a otras (similar estructura) es usada en una vista


que las
> > une (UNION) teniendo la primera tabla de dicha union el campoX igual a


2
> > caracteres
> >
> > pruebo la vista desde el propio servido y me da correctamente valores


de
> > hasta 4 caracteres provinientes de la tabla actualizada
> >
> > pero cuando esta vista es usada en uno de los linked servers o


applicaciones
> > de acess tan solo devuelve los dos primeors caracteres
> >
> > es como si en algun lugar se guardara memoria de los tamaños de los


campos
> > de las vistas, y habiendo sido el maximo anterior 2 , ahora no


reconoce los
> > 4 caracteres
> >
> > alguien me puede dar una ayudita ??
> >
> > gracias por adelantado
> >
> >
> >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida