У меня есть таблица, содержащая столбец Email
, который является varchar(MAX)
, и я пытаюсь обновить его с помощью хранимой процедуры. Когда длина строки больше 8000 символов, я получаю эту ошибкуSQL Server - обновление столбца Varchar (max) с использованием хранимой процедуры
Строковые или двоичные данные будут усечены. Заявление было завершено .
Хранимая процедура:
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)
Интересная вещь, когда я пытаюсь выполнить запрос обновления вручную, это работает!
Я делал это несколько раз, но не могу понять, почему он не работает в этом случае.
если столбец в таблице VARCHAR (MAX), поэтому хранится параметр Proc является NVARCHAR (макс)? – Harsh
Мне было интересно, почему адрес электронной почты превышает 8000 символов? , эта ссылка может помочь вам http://www.sqlservercentral.com/Forums/Topic647815-145-1.aspx – Japongskie
использовать профиль sql, чтобы найти фактические данные, передаваемые из вашего приложения. – Chandru