您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么解決SQLServer報錯消息 7347,級別 16”,在日常操作中,相信很多人在怎么解決SQLServer報錯消息 7347,級別 16問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么解決SQLServer報錯消息 7347,級別 16”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
SQLServer通過鏈接服務器查詢視圖報錯“消息 7347,級別 16”
問題:通過 鏈接服務器 遠程查看某張表數(shù)據(jù)時報如下錯誤:
消息 7347,級別 16,狀態(tài) 1,第 1 行
鏈接服務器 '192.168.200.51' 的 OLE DB 訪問接口 'SQLNCLI11' 返回的數(shù)據(jù)與列 '[192.168.200.51].[erp].[dbo].[vp_cust].PName' 所需的數(shù)據(jù)長度不匹配。所需的(最大)數(shù)據(jù)長度為 30,但返回的數(shù)據(jù)長度為 37。
問題原因:
視圖所在基表表結(jié)構(gòu)發(fā)生變化,PName字段字符長度變長了,但是通過 鏈接服務器 遠程查看的表仍然使用表PName字段原來的字符長度,表結(jié)構(gòu)變化的信息沒有同步,查詢時顯示數(shù)據(jù)長度不夠;
解決方案:
手動刷新視圖;
EXECUTE sp_refreshview N'dbo.vp_cust';
問題重現(xiàn)過程如下:
192.168.100.100服務器創(chuàng)建鏈接服務器,連接192.168.100.200的TESTDB數(shù)據(jù)庫;
---192.168.100.200
創(chuàng)建測試數(shù)據(jù);
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,狀態(tài) 1,第 3 行
鏈接服務器 '192.168.2.141' 的 OLE DB 訪問接口 'SQLNCLI11' 返回的數(shù)據(jù)與列 '[192.168.2.141].[erp352].[dbo].[v_test1013].col1' 所需的數(shù)據(jù)長度不匹配。所需的(最大)數(shù)據(jù)長度為 3,但返回的數(shù)據(jù)長度為 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”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。