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

Prisma操作MSSQL报Column Too Long如何配置长文本字段

问题原因

Prisma 针对 MSSQL 数据库的默认String类型,会自动映射为nvarchar(1000),字段最大长度仅支持1000个字符,存储长HTML字符串时自然会触发字段长度超限报错。

MSSQL 长文本支持说明

MSSQL 原生支持varchar(max)、nvarchar(max)类型,单字段最大可存储2GB内容,完全覆盖长HTML字符串的存储场景:

  • varchar(max):存储非Unicode编码文本,适合纯英文/ASCII字符内容
  • nvarchar(max):存储Unicode编码文本,支持多语言、特殊字符,存带中文、特殊符号的HTML优先选这个

注意:MSSQL 旧版的text、ntext类型已被微软标记为将在后续版本弃用,不推荐使用。

Prisma 配置方法

只需要在content字段上添加对应类型映射注解,指定使用max长度的字符串类型即可,修改后的Post模型示例:

model Post {
  // 其余字段保持原有配置不变
  content        String?    @db.NVarChar("max")
  // 其余字段保持原有配置不变
}

如果你的HTML内容全是ASCII字符、不需要存储多语言内容,也可以替换为@db.VarChar("max")获得更小的存储开销。

生效步骤
  1. 修改完schema文件后,执行以下命令生成数据库迁移并应用:
npx prisma migrate dev --name alter_post_content_to_long_type
  1. 等待迁移执行完成后,Prisma Client会自动更新,后续即可正常往content字段写入长HTML内容,不会再触发长度超限报错。

如果是已有线上数据库不方便执行迁移,也可以手动在MSSQL中把content字段类型修改为nvarchar(max),再执行npx prisma generate更新本地客户端类型映射即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:31:01