Хранимый Proc с XML выдает Visual Studio Предупреждение (работает в SQL Server) - PullRequest
0 голосов
/ 15 декабря 2011

Я пытался отогнать эту проблему до самого простого SQL-запроса, который все еще показывает проблему.У меня есть sproc в проекте базы данных Visual Studio, который выдает предупреждение в Visual Studio, но совершенно допустимый SQL в SQL Server.Я хотел бы убрать предупреждение.Кто-нибудь знает способ переписать 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, думая, что это однозначно.

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

Я считаю, что SQL04151: невозможно устранить при использовании узлов XML отчет об ошибке, вероятно, применим и содержит обходной путь.

0 голосов
/ 16 декабря 2011

Обходной путь к сообщению об ошибке, связанном Джеймсом, немного обманчив, но он работает.Вот что я изменил, и предупреждение исчезло:

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