1
검색 기준을 포함하는 SQL 매개 변수를 사용하여 테이블에서 XML 데이터를 쿼리하려고하는데 예기치 않은 결과가 발생합니다.SQL 매개 변수를 사용하여 XML 데이터 쿼리
는 예를 들어, 다음 T-SQL 코드를 고려 : 나는 사실 0으로 반환이 쿼리의 결과를 기대
DECLARE @Configuration AS TABLE
(
[Data] XML NOT NULL
);
INSERT INTO Configuration ([Data]) VALUES '<Configuration><Colors><Color>RED</Color><Color>BLUE</Color></Colors></Configuration>');
DECLARE @Color AS NVARCHAR(MAX);
SET @Color = N'YELLOW';
SELECT COUNT(*) FROM @Configuration WHERE [Data].exist('/Configuration/Colors/Color/text() = sql:variable("@Color")') = 1;
을,이 쿼리 1. 더 나쁜 반환은 반환 나타납니다 하나의 값에 관계없이 하나를 설정하면 @Color
으로 설정됩니다.
무엇이 누락 되었습니까?
실제 의미론이 OP의 쿼리와 어떤 관련이 있습니까? '존재'를 실제로 평가하는 것은 무엇입니까? –
@MartinSmith 주어진 매개 변수 값이 XML에 존재하는지 찾으려는 것 같습니다. – techspider
그건 제가 요청한 것이 아닙니다. 쿼리가 현재 무엇을하고 있는지 물었습니다. 오류가 발생하지 않으므로. 그냥 부울 결과의 존재를 평가하는 것일까 요? –