在分配比变量长的 varchar 时,是否有强制错误的设置?

ber*_*d_k 5 sql-server-2008

我想在将更长的 varchar 分配给变量并且没有静默截断时出现错误。有什么设置吗?

这将无声地截断:

declare @code varchar(10)
set @code = 'This is too long'
select @code
Run Code Online (Sandbox Code Playgroud)

将 varchar 插入较小的 Table 列

create table test (col1 varchar(10));
insert into test values ('This is too long');
Run Code Online (Sandbox Code Playgroud)

产生错误:

Meldung 8152, Ebene 16, Status 14, Zeile 2
String or binary data would be truncated.
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)

小智 4

这应该适用于这个问题:

declare @code varchar(10)
declare @input VARCHAR(200)
set @input = 'Set your input code here'

IF(LEN(@input) <= 10) -- make sure this number is same as length of 'code' variable
    SET @code = @input

ELSE
BEGIN
    SELECT 'Inputted string is too long for the variable.'
    RETURN
END

select @code
Run Code Online (Sandbox Code Playgroud)