【发布时间】:2013-06-25 07:16:07
【问题描述】:
我正在编写以下 SQL 过程:
ALTER PROCEDURE [dbo].[spc_InsertSubjectToContentRelation]
(
@pCourseGUID XML,
@pSubjectId XML,
@pAssessmentIds XML,
@pVideoIds XML
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CourseGUID NVARCHAR(50);
DECLARE @SubjectId NVARCHAR(50);
DECLARE @AssessmentIds NVARCHAR(MAX);
DECLARE @VideoIds NVARCHAR(MAX);
SET @CourseGUID = Convert(NVARCHAR,@pCourseGUID);
SET @SubjectId = Convert(NVARCHAR,@pSubjectId);
SET @AssessmentIds = Convert(NVARCHAR,@pAssessmentIds);
SET @VideoIds = Convert(NVARCHAR,@pVideoIds);
INSERT INTO SubjectToAssessmentAndVideoRelation VALUES (@pCourseGUID, @pAssessmentIds, @pAssessmentIds, @pVideoIds)
END
当我运行这个程序时,我收到了错误:
不允许从数据类型 xml 到 nvarchar 的隐式转换。使用 CONVERT 函数运行此查询。 我该如何解决这个问题?
【问题讨论】:
-
如果这不是您的过程想要的类型,为什么要将参数声明为一种类型?
-
@Damien_The_Unbeliever 因为表中的列类型不是 xml 类型
标签: stored-procedures sql-server-2008-r2