Подзапрос вернул более 1 значения.Это недопустимо, когда подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.
CREATE PROCEDURE list_select (@id INT)
AS
IF (@id IS NOT NULL)
BEGIN
DECLARE @xml XML = CAST((SELECT data FROM messages WHERE id = @id) AS XML)
DECLARE @reference VARCHAR(MAX) = @xml.value('(/*:xml/*:reference/text())[1]', 'varchar(50)')
DECLARE @name VARCHAR(MAX) = @xml.value('(/*:xml/*:name/text())[1]', 'varchar(50)')
END
SELECT
@reference as reference,
@name as name
GO
Как я могу заставить это работать с болеечем одно значение?