Мне нужно вставить столбец в хранимую процедуру, которая читает XML как входную информацию и считывает значение XML с помощью XQuery в SQL Server.Вставить элемент в XML с помощью XQuery в SQL Server
Рассмотрим таблицу dbo.emailDetails
Create Table dbo.emailDetails
(
EmailId int,
HomeEmail varchar(250),
);
XML файл:
<EmailDetails xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EmailId>1</EmailId>
<HomeEmail>[email protected]</HomeEmail>
</EmailDetails>
SQL Server хранимые процедуры:
CREATE PROCEDURE [apply].[UpdateEmailDetails]
@EmailDetails XML
(DOCUMENT [dbo].[EmailDetails])
AS
BEGIN
DECLARE @EmailId INT, @HomeEmail NVARCHAR(250)
SET @HomeEmail = @EmailDetails.value(N'(//EmailDetails/HomeEmail)[1]',N'NVARCHAR(255)');
SET @EmailId = @EmailDetails.value(N'(//EmailDetails/EmailID)[1]',N'INT');
INSERT INTO dbo.emails (emailid, homeemail)
VALUES (@EmailId, @HomeEmail)
END
Теперь я хотел бы включить в IsConfirmed
выше хранимая процедура.
alter table dbo.Emaildetails
add IsConfirmed bit not null default 0
----- Executed successfully and added the new column in the table.
В то время как я попытался следующие изменения в хранимой процедуре:
Declare @IsConfirmed bit
SET @IsConfirmed = @EmailDetails.value(N'(//EmailDetails/IsConfirmed)[1]',N'BIT');
и получил ошибку:
XQuery [value()]: There is no element named 'IsConfirmed' in the type 'element(EmailDetails,#anonymous) *'.
Может кто-нибудь помочь мне с этим?
Просьба сообщить мне, если требуются дальнейшие детали.
С уважением, Вишва V.
выглядит как ваша переменная именование повсюду в вашем примере, вы назвали переменные «@ContactDetails» в вашем SP, не существует «// EmailDetails/IslConfirmed) [1] "имеет неправильное имя узла," INSERT INTO dbo.emails "имеет неправильное имя таблицы. Помимо этого, когда вы его убираете, это прекрасно работает, вы уверены, что вам не хватает, показывая нам что-то еще? –
Привет, Джейми, Извините за опечатку. Я редактировал страницу. Я хочу знать синтаксис для моего ввода XMl, который упоминается как (Документ). Я мало разбираюсь в XML. Не могли бы вы помочь мне объяснить это? –
salaiviswa