Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有XML的存储过程引发Visual Studio警告(在SQL Server中工作)_Sql_Visual Studio 2010_Tsql_Sql Server 2008 R2 - Fatal编程技术网

带有XML的存储过程引发Visual Studio警告(在SQL Server中工作)

带有XML的存储过程引发Visual Studio警告(在SQL Server中工作),sql,visual-studio-2010,tsql,sql-server-2008-r2,Sql,Visual Studio 2010,Tsql,Sql Server 2008 R2,我试图将这个问题归结为我所能生成的最简单的SQL,它仍然显示了这个问题。我在VisualStudio数据库项目中有一个存储过程,它在VisualStudio中抛出警告,但在SQLServer中是完全有效的SQL。我想让警告消失。有人知道如何重新编写SQL来修复警告吗 CREATE PROCEDURE SampleSproc @ResourcesXML xml AS BEGIN SELECT S.PlanID FROM (SELECT foo.x.val

我试图将这个问题归结为我所能生成的最简单的SQL,它仍然显示了这个问题。我在VisualStudio数据库项目中有一个存储过程,它在VisualStudio中抛出警告,但在SQLServer中是完全有效的SQL。我想让警告消失。有人知道如何重新编写SQL来修复警告吗

CREATE PROCEDURE SampleSproc
    @ResourcesXML xml          
AS
BEGIN
    SELECT S.PlanID FROM
    (SELECT foo.x.value('@PlanID','int') AS PlanID
    FROM @ResourcesXML.nodes('A') AS foo(x)) AS S       
END
警告是:

SQL04151: Procedure: [dbo].[SampleSproc] contains an unresolved reference to an object. 
Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: 
[@ResourcesXML].[x]::[value] or [foo].[x].[value]

它在抱怨foo.x.value部分。只需执行x.value就会抛出相同的警告。我不确定我能做些什么来“欺骗”VS,使其认为它是明确的。

我相信错误报告可能是适用的,并且包含一个解决方法。

关于错误报告的解决方法James linked有点做作,但它确实有效。以下是我将其更改为的内容,警告消失了:

WITH CTE_Result AS 
(
    SELECT foo.x.value('@PlanID','int') AS PlanID
    FROM @ResourcesXML.nodes('A') AS foo(x)
)
SELECT PlanID FROM CTE_Result