J'ai un SQL Server 2005 qui a un « serveur lié » à un autre SQL Server 2005.lié SQL Server a erreur à la conversion type de données DBTYPE_DBTIMESTAMP
Quand je lance une requête simple sur l'une des tables contre le lien serveur:
SELECT TOP 10 [Pat_Id]
FROM [Prod].[PIS].[dbo].[W_PATIENT]
Cette erreur se produit:
Msg 8114, Level 16, State 8, Line 1
Error converting data type DBTYPE_DBTIMESTAMP to datetime.
Msg 8114, Level 16, State 8, Line 1
Error converting data type DBTYPE_DBTIMESTAMP to datetime.
Cependant, quand je l'utilise OPENQUERY cela fonctionne:
SELECT * FROM OPENQUERY([Prod], 'SELECT TOP 10 [Pat_Id] FROM [PIS].[dbo].[W_PATIENT]')
La table W_PATIENT ne comporte aucun champ typé 'TIMESTAMP'. Il a 5 champs DATETIME.
Il est également important de noter que je peux interroger d'autres tables avec des valeurs DATETIME sans problème. Le problème est concentré sur la table W_PATIENT.
Avez-vous essayé de lancer [Pat_Id] en binaire (8)? C'est équivalent à TIMESTAMP et il serait intéressant de voir si cela a fonctionné. – ajdams
Bonne pensée. Avant votre commentaire, j'ai essayé de convertir les champs DATETIME en TIMESTAMP et cela fonctionnait si j'étais connecté localement à la base de données Prod. Je viens d'utiliser BINARY (8) comme suggéré qui a également fonctionné. J'espérais qu'en jetant chacune des DATETIME individuellement je serais capable d'identifier celui avec de mauvaises données, mais pas de chance. – jacksonakj
Etes-vous sûr que votre serveur lié est configuré correctement? Quelle est l'utilité de cette requête: SELECT produit, fournisseur FROM sys.servers WHERE name = 'Prod'; –