Ошибка: вставьте значения иерархии с помощью хранимой процедуры - PullRequest
1 голос
/ 27 января 2010

Я получаю эту ошибку при попытке выполнить запрос, который вставляет результаты в таблицу в sql. я передаю имя таблицы в качестве параметра, как передать значение иерархии в оператор вставки.

вот мой код:

declare @pathhere hierarchyid

select @pathhere=Path from SectionDetails where Sectionid=@sectionid and SectionName=@sectionname and Batchid=@batchid  and Deptid=@deptid and Schoolid=@schoolid

вставить stmt:

set @sqlstmt = 'insert into '+@batch+'(StudentID, StudentName,SectionID,SectionName,BatchID,BatchName, DeptID,DeptName, SchoolID,Path)
values('''+@sectionid+''','''+@sectionname+''','''+@sectionid+''','''+@sectionname+''','''+@batchid+''','''+@batchname+''','''+ @deptid+''','''+@deptname+''', '''+@schoolid+''','+ CAST(@pathhere as hierarchyid)+')'
exec(@sqlstmt)

я получаю ошибку в этой строке:

'+ CAST(@pathhere as hierarchyid)+'

как Invalid operator for data type. Operator equals add, type equals hierarchyid.

Может кто-нибудь, пожалуйста, помогите мне, как передать значение иерархии

1 Ответ

0 голосов
/ 27 января 2010

Вы пытаетесь создать строку, которая может быть выполнена как оператор. Поэтому вам нужно вместо этого поместить вашу иерархию в nvarchar (max).

попробуй: @pathhere.ToString()

...