You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

INFORMATION_SCHEMA.VIEWS中VIEW_DEFINITION长度受限,能否修改为varchar(max)?

无法修改INFORMATION_SCHEMA.VIEWS的VIEW_DEFINITION数据类型

很遗憾,你没办法直接修改INFORMATION_SCHEMA.VIEWS里VIEW_DEFINITION列的数据类型——这个视图是SQL Server内置的系统视图,它的结构是固定的,由数据库引擎维护,普通用户没有权限去修改它的列定义。

不过别担心,有更好的替代方案来获取完整的视图定义:使用sys.sql_modules系统视图,它的definition列是nvarchar(max)类型,完全能容纳长度超过4000字符的视图定义。

你可以用下面的查询来备份所有视图的完整定义到自定义表中:

-- 创建备份表并插入完整视图定义
SELECT
    DB_NAME() AS TABLE_CATALOG,
    s.name AS TABLE_SCHEMA,
    o.name AS TABLE_NAME,
    m.definition AS VIEW_DEFINITION
INTO YourViewBackupTable
FROM sys.views o
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
INNER JOIN sys.sql_modules m ON o.object_id = m.object_id;

这个查询会把数据库名、视图所在的架构名、视图名称和完整的定义都保存到你指定的备份表里,完全不会有截断的问题。

内容的提问来源于stack exchange,提问作者user1916006

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:17:32