我有一個SQL Server 2005中,有一個「鏈接服務器」到另一個SQL Server 2005的鏈接的SQL Server有誤差與轉換數據類型DBTYPE_DBTIMESTAMP
當我對鏈接表的一個運行一個簡單的查詢服務器:
SELECT TOP 10 [Pat_Id]
FROM [Prod].[PIS].[dbo].[W_PATIENT]
出現此錯誤:
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.
然而,當我使用OPENQUERY它的工作原理:
SELECT * FROM OPENQUERY([Prod], 'SELECT TOP 10 [Pat_Id] FROM [PIS].[dbo].[W_PATIENT]')
W_PATIENT表沒有任何'TIMESTAMP'類型的字段。它有5個DATETIME字段。
同樣值得注意的是,我可以用DATETIME值查詢其他表而不會出現問題。問題集中在W_PATIENT表上。
您是否嘗試將[Pat_Id]轉換爲二進制文件(8)?這相當於TIMESTAMP,看看它是否有效很有意思。 – ajdams 2009-11-18 22:50:52
好想法。在您的評論之前,我嘗試將DATETIME字段投射到TIMESTAMP,並且如果我本地連接到Prod數據庫,則工作正常。我只是使用BINARY(8)的建議,也工作。我希望通過單獨投射每個DATETIME,我都能夠識別具有不良數據的那個,但是沒有運氣。 – jacksonakj 2009-11-19 16:47:29
你確定你的鏈接服務器設置正確嗎?這個查詢產生了什麼:SELECT product,provider FROM sys.servers WHERE name ='Prod'; – 2009-11-19 02:06:02