Bonjour,
Je rencontre un pb depuis la migration d'une base sqlserver 2005 vers un sqlserver 2008R2 SP1.
Voici le contexte:
Une site internet exécute une procédure stockée dans la base SQL2K8. Cette PS appelle une vue (dans cette même base). Cette vue effectue des select dans des bases hébergées sur un autre serveur SQL2K5 au travers d'un serveur lié.
Aléatoirement, le site plante sur cette erreur:
Pour résoudre ce problème, je suis obligé de vider le cache des procédures afin qu'elles soient recompilées (dbcc freeproccache)System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: The OLE DB provider "SQLNCLI10" for linked server "SRV-SQL2K5" reported a change in schema version between compile time ("175466615927874") and run time ("175470898802162") for table ""database1"."dbo"."table1"".
Je précise que je n'utilise pas de synonym dans la vue, car j'ai vu qu'il y avait un bug ressemblant avec l'utilisation de synonyms, non corrigé d'ailleurs avec le SQL2008R2SP1, cu1.
http://www.sqlservergeeks.com/blogs/...e-and-run-time
A priori, il n'y a pas de modification de schéma dans les bases SQL2K5.
Pour contourner le pb j'ai demandé au développeur de modifier sa proc stock pour qu'elle soit recompilée à chaque exécution (with recompile), mais c'est juste une rustine.
Voici à quoi ressemble la vue:
CREATE VIEW [dbo].[mavue]
AS
SELECT ... ...
FROM [SRV-SQL2K5].database1.dbo.table1
WHERE (Etat = 1)
UNION
SELECT ... ...
FROM SRV-SQL2K5].database2.dbo.table1
WHERE (Etat = 1)
...
...
Si vous avez une idée du problème, et des pistes vers lesquelles m'orienter, je suis preneur.
Ca a fonctionné pendant plusieurs années quand ma base était en sql2K5.
Merci
Partager