存储过程中为什么总是在报"将截断字符串或二进制数据"错误

第一张图是我在SQLServerManagementStudio中设计的表第二图是我的报错内容。老是提示“将截断字符串或二进制数据。”附上我写的存储过程:CREATEPR... 第一张图是我在SQL Server Management Studio中设计的表

第二图是我的报错内容。老是提示“将截断字符串或二进制数据。”

附上我写的存储过程:
CREATE PROCEDURE [dbo].[Uploadfile]
@fileName nchar(50),
@fileName_old nchar(50),
@filePath ntext,
@fileSize int,
@fileContent varbinary(MAX),
@fileType nchar(10)
AS
INSERT files(fileName, fileName_old, filePath, fileSize, fileContent, fileType)
VALUES(@fileName, @fileName_old, @filePath, @fileSize, @fileContent, @fileType)

请问大神是哪里出错了?为什么会报错?
展开
 我来答
17号观察室
推荐于2017-09-11 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1374万
展开全部
楼主 过程没有问题 语法完全正确
报这个错误 是因为你插入的字符串长度超过了你定义的字符串长度
就是你那个nchar 你上面定义了3个这样的类型
要一个个的排除了 看你的表files 对应的字段哪个字段比你传入的字符串长度短就是了
还有就是变量的赋值也不能超过变量定义的长度

总结一下,有两原因:
一、变量的赋值不能超过变量定义的长度
二、表files 对应的字段的长度要和变量传入的字符串长度相同
有什么疑问可以随时找我 纯手打 希望采纳
zfeihaooo
2013-09-07 · 超过26用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:45.5万
展开全部

调试方法:

  1. debug到executeNonQuery, 取所有变量参数,直接放到数据库运行存储过程看看

  2. 将参数注销到只剩一个,其他默认值,逐个试是哪个问题

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式