您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么解決SQLServer報錯消息 7347,級別 16”,在日常操作中,相信很多人在怎么解決SQLServer報錯消息 7347,級別 16問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么解決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
到此,關于“怎么解決SQLServer報錯消息 7347,級別 16”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。