簡體   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