SQLServer通過連結伺服器查詢檢視報錯 “訊息 7347,級別 16”
SQLServer通過連結伺服器查詢檢視報錯“ 訊息 7347 ,級別 16 ”
問題: 通過 連結伺服器 遠端檢視某張表資料時報如下錯誤:
訊息 7347 ,級別 16 ,狀態 1 ,第 1 行
連結伺服器 '192.168.200.51' 的 OLE DB 訪問介面 'SQLNCLI11' 返回的資料與列 '[192.168.200.51].[erp].[dbo].[vp_cust].PName' 所需的資料長度不匹配。所需的 ( 最大 ) 資料長度為 30 ,但返回的資料長度為 37 。
問題原因:
檢視所在基表表結構發生變化, PName 欄位字元長度變長了,但是 通過 連結伺服器 遠端檢視的表仍然使用表 PName 欄位 原來的字元長度, 表結構變化的資訊沒有同步,查詢時顯示資料長度不夠;
解決方案:
手動重新整理檢視;
EXECUTE sp_refreshview N'dbo.vp_cust' ;
問題重現過程如下:
192.168.100.100 伺服器建立連結伺服器,連線 192.168.100.200 的 TESTDB 資料庫;
---192.168.100.200
建立測試資料;
Use TESTDB
Create table test1013(id int,col1 varchar(3));
Create view v_test1013 as select * from test1013;
Insert into test1013 values(1, ’ a ’ );
Insert into test1013 values(2, ’ bb ’ );
Insert into test1013 values(3, ’ ccc ’ );
---192.168.100.100
Select * from [192.168.100.200].[TESTDB].[dbo].[v_test1013];
Id col1
1 a
2 bb
3 ccc
---192.168.100.200
Alter table test1013 alter column col1 varchar(5);
Insert into test1013 values(5, ’ eeeee ’ );
Select * from v_test1013;
---192.168.100.100
Select * from [192.168.100.200].[TESTDB].[dbo].[v_test1013];
訊息 7347 ,級別 16 ,狀態 1 ,第 3 行
連結伺服器 '192.168.2.141' 的 OLE DB 訪問介面 'SQLNCLI11' 返回的資料與列 '[192.168.2.141].[erp352].[dbo].[v_ test1013 ]. col1 ' 所需的資料長度不匹配。所需的 ( 最大 ) 資料長度為 3 ,但返回的資料長度為 5 。
---192.168.100.200
EXECUTE sp_refreshview N'dbo.v _test1013 ' ;
---192.168.100.100
Select * from [192.168.100.200].[TESTDB].[dbo].[v_test1013];
Id col1
1 a
2 b
3 ccc
5 eeeee
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2659813/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer通過連結伺服器查詢表報錯 “訊息 7313,級別 16”SQLServer伺服器
- 檢視查詢報錯
- 檢視sqlserver連線數SQLServer
- SQLSERVER跨伺服器查詢SQLServer伺服器
- MySQL查詢取別名報錯MySql
- sqlserver表結構查詢SQLServer
- EBS中通過查詢 dba_source 檢視pkg 的版本號
- 通過Oracle動態效能檢視採集查詢調優數Oracle
- Sqlserver資料庫郵件的體系結構及常用的查詢檢視SQLServer資料庫
- 查詢儲存過程報錯資訊儲存過程
- 雲伺服器如何檢視埠是否連通伺服器
- oracle連線SQLserver--通過ODBCOracleSQLServer
- Dynamics CRM 通過配置來設定查詢欄位的預設檢視
- Win10系統下怎麼通過事件檢視器中檢視硬碟檢查結果Win10事件硬碟
- 連結伺服器查詢導致的阻塞伺服器
- 透過查詢檢視sql執行計劃SQL
- SQLServer之建立連結伺服器SQLServer伺服器
- Sqlserver使用遊標迴圈查詢所有sqlserver error日誌帶有Exception的報錯SQLServerErrorException
- 檢查主庫dataguard有無報錯資訊的檢視
- 【MySQL】檢視&子查詢MySql
- oracle 常用查詢檢視Oracle
- 通過shell和sql結合查詢效能sqlSQL
- java通過jdbc連線oracle報錯No suitable driverJavaJDBCOracleUI
- 通過連線檢視資料庫相關資訊資料庫
- Qt Quick 訊息列表檢視元件QTUI元件
- Oracle查詢轉換(三)外連線檢視合併Oracle
- 通訊錄查詢和新增
- SQLServer 檢查1SQLServer
- navicat 新建查詢報錯
- SQLServer查詢使用者儲存過程SQLServer儲存過程
- 查詢SQLSERVER執行過的SQL記錄SQLServer
- 基於單連結串列的班級通訊錄
- 檢視慢查詢進度
- 通過 v$sqlarea 查詢disk read嚴重(I/O)的SQL-- Oracle效能檢視SQLOracle
- 兩種方式建立sqlserver連結伺服器SQLServer伺服器
- sqlserver設定oracle的連結伺服器SQLServerOracle伺服器
- sqlserver建立與Oracle的連結伺服器SQLServerOracle伺服器
- 資料結構-單連結串列查詢按序號查詢資料結構