2010-06-08 15 views
2

J'ai une variable de table @RQ, je la veux mise à jour en utilisant une fonction table. Maintenant, je pense que je fais la mise à jour de mal, parce que ma fonction fonctionne ...Erreur SQL: Les données chaîne ou binaires seraient tronquées

La fonction:

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 

Maintenant, quand je lance une requête simple:

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) 

Je suis erreur:

Msg 8152, Level 16, State 13, Line 20 String or binary data would be truncated. The statement has been terminated.

Pourquoi? Que faire à ce sujet?

Répondre

3

Ok. ma faute ...

un varchar (10) a été essayé d'être rempli avec une longue chaîne de 10 caractères. Donc ça a échoué ...