我有一个表变量@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 字符串或二进制数据将被截断。该语句已终止。
为什么?该怎么办?