Ошибка SQL: строка или двоичные данные будут усечены
Я получил переменную таблицы @RQ
Я хочу, чтобы он обновлялся с помощью табличной функции. Теперь, я думаю, что я делаю обновление неправильно, потому что моя функция работает...
Функция:
ALTER FUNCTION [dbo].[usf_GetRecursiveFoobar]
(
@para int,
@para datetime,
@para varchar(30)
)
RETURNS @ReQ TABLE
(
Onekey int,
Studnr nvarchar(10),
Stud int,
Description nvarchar(32),
ECTSGot decimal(5,2),
SBUGot decimal(5,0),
ECTSmax decimal(5,2),
SBUmax decimal(5,0),
IsFree bit,
IsGot int,
DateGot nvarchar(10),
lvl int,
path varchar(max)
)
AS
BEGIN;
WITH RQ
AS
(
--RECURSIVE QUERY
)
INSERT @ReQ
SELECT
RQ.Onekey,
RQ.Studnr,
RQ.Stud,
RQ.Description,
RQ.ECTSGot,
RQ.SBUGot,
RQ.ECTSmax,
RQ.SBUmax,
RQ.IsFree,
RQ.IsGot,
RQ.DatumGot,
RQ.lvl,
RQ.path
FROM
RQ
RETURN
END
Теперь, когда я запускаю простой запрос:
DECLARE @ReQ TABLE
(
OnderwijsEenheid_key int,
StudentnummerHSA nvarchar(10),
Student_key int,
Omschrijving nvarchar(32),
ECTSbehaald decimal(5,2),
SBUbehaald decimal(5,0),
ECTSmax decimal(5,2),
SBUmax decimal(5,0),
IsVrijstelling bit,
IsBehaald int,
DatumBehaald nvarchar(10),
lvl int,
path varchar(max)
)
INSERT INTO @ReQ
SELECT *
FROM usf_GetRecursiveFoobar(@para1, @para2, @para3)
Я получил ошибку:
Сообщение 8152, уровень 16, состояние 13, строка 20 Строка или двоичные данные будут обрезаны. Заявление было прекращено.
Зачем? Что с этим делать?
1 ответ
Решение
Хорошо. моя вина...
varchar(10) пытался заполнить длинной в 10 символов. Так и не получилось...