2015-12-02 8 views
0

У меня есть таблица, содержащая столбец 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)

Интересная вещь, когда я пытаюсь выполнить запрос обновления вручную, это работает!

Я делал это несколько раз, но не могу понять, почему он не работает в этом случае.

+0

если столбец в таблице VARCHAR (MAX), поэтому хранится параметр Proc является NVARCHAR (макс)? – Harsh

+1

Мне было интересно, почему адрес электронной почты превышает 8000 символов? , эта ссылка может помочь вам http://www.sqlservercentral.com/Forums/Topic647815-145-1.aspx – Japongskie

+0

использовать профиль sql, чтобы найти фактические данные, передаваемые из вашего приложения. – Chandru

ответ

-1

Надеется, что это может помочь вам:

Microsoft MSDN

Maximum Capacity Specifications for SQL Server

1 байты = 1 символьных >> 2^31-1 символы

VARCHAR [(п | макс)]

Variable-lengt h, строковые данные, отличные от Unicode. n определяет длину строки и может быть значением от 1 до 8000. max указывает, что максимальный размер хранилища составляет 2^31-1 байта (2 ГБ). Размер хранилища - это фактическая длина введенных данных + 2 байта. Синонимы ISO для varchar имеют различный характер или характер.

How many characters in varchar(max)

Maximum size of a varchar(max) variable

+0

-1: Из вопроса, похоже, что OP действительно понимает, что он делает, и ему нужна помощь для конкретного сценария. Публикация ссылок на статьи MSDN в таких случаях не поможет. –

+0

@ user2564977 Я уважаю ваше мнение, я просто пытаюсь помочь :) С уважением – Japongskie

Смежные вопросы