2010-01-27 14 views
1

Je reçois cette erreur lorsque j'essaie d'exécuter une requête qui insère des résultats dans une table en SQL. Im passer le nom de la table en tant que paramètre, comment donner la valeur de la hiérarchie à l'instruction d'insertion.Erreur: insertion de valeurs de hiérarchie à l'aide de storedprocedure

voici mon code:

declare @pathhere hierarchyid 

select @pathhere=Path from SectionDetails where [email protected] and [email protected] and [email protected] and [email protected] and [email protected] 

insert stmt:

set @sqlstmt = 'insert into '[email protected]+'(StudentID, StudentName,SectionID,SectionName,BatchID,BatchName, DeptID,DeptName, SchoolID,Path) 
values('''[email protected]+''','''[email protected]+''','''[email protected]+''','''[email protected]+''','''[email protected]+''','''[email protected]+''','''+ @deptid+''','''[email protected]+''', '''[email protected]+''','+ CAST(@pathhere as hierarchyid)+')' 
exec(@sqlstmt) 

im obtenir erreur dans cette ligne:

'+ CAST(@pathhere as hierarchyid)+' 

comme Invalid operator for data type. Operator equals add, type equals hierarchyid.

quelqu'un peut pls aider moi comment transmettre la valeur de la hiérarchie

+0

Cette question est claire. Pourriez-vous formater votre requête? – Galkin

Répondre

0

Vous essayez de créer une chaîne qui peut être exécutée sous la forme d'une instruction. Vous devez donc placer votre hierarchyid dans nvarchar (max) à la place.

essayer: @pathhere.ToString()

+0

mais si j'utilise cette im obtenir Impossible de trouver la méthode 'Tostring' pour le type 'Microsoft.SqlServer.Types.SqlHierarchyId' dans l'assembly 'Microsoft.SqlServer.Types' – Innova

+0

Donc, vous remplacez la partie que vous dites vous cause une erreur avec ''+ @ pathhere.ToString() +'', n'est-ce pas? –

+0

merci pour yr réponse..ya – Innova