SQLServer通过链接服务器查询视图报错 “消息 7347,级别 16”

来源:这里教程网 时间:2026-03-02 11:35:26 作者:

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",共同学习,共同成长!!!

相关推荐

热文推荐