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