繁体   English   中英

SQL Server-使用存储过程更新Varchar(max)列

[英]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)

有趣的是,当我尝试手动运行更新查询时,它起作用了!

我已经做过几次,但无法弄清楚为什么在这种情况下它不起作用。

希望这可以帮到你:

微软MSDN

SQL Server的最大容量规格

1个字节= 1个字符>> 2 ^ 31-1个字符

varchar [(n | max)]

可变长度的非Unicode字符串数据。 n定义字符串长度,并且可以是1到8,000之间的值。 max表示最大存储大小为2 ^ 31-1字节(2 GB)。 存储大小是输入数据的实际长度+ 2个字节。 varchar的ISO同义词是char变化或字符变化。

varchar(最大)个字符

varchar(max)变量的最大大小

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM