[英]SQL Server - updating Varchar(max) column using stored procedure
我有包含包含Email
列的表,该列是varchar(MAX)
并且我正在尝试使用存储过程进行更新。 当字符串长度大于8000个字符时,出现此错误
字符串或二进制数据将被截断。 该语句已终止。
存储过程:
ALTER PROCEDURE [dbo].[SaveData]
@Id BIGINT,
@Email varchar(max)
AS
BEGIN
SET NOCOUNT ON;
UPDATE tb_data
SET Email = @Email
WHERE Id = @Id
END
请注意,电子邮件的数据类型设置为varchar(MAX)
有趣的是,当我尝试手动运行更新查询时,它起作用了!
我已经做过几次,但无法弄清楚为什么在这种情况下它不起作用。
希望这可以帮到你:
1个字节= 1个字符>> 2 ^ 31-1个字符
varchar [(n | max)]
可变长度的非Unicode字符串数据。 n定义字符串长度,并且可以是1到8,000之间的值。 max表示最大存储大小为2 ^ 31-1字节(2 GB)。 存储大小是输入数据的实际长度+ 2个字节。 varchar的ISO同义词是char变化或字符变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.