хранимой процедуры:Хранимые значения Процедура не вставить XML узел
ALTER proc [dbo].[Equip_SaveTeamTaskAssigineeDetails] (
@saveDataXML xml)
as
begin
Declare @claimid int,
@createdate datetime,
@duedate datetime,
@startdate datetime,
@assignmentid int,
@assignedto varchar(50),
@piority varchar(50),
@comment varchar(4000)
select @claimid = node.value('claimid[1]','int'),
@createdate = node.value('createdate[1]','datetime'),
@duedate = node.value('duedate[1]','datetime'),
@startdate = node.value('startdate[1]','datetime'),
@assignmentid = node.value('assignmentid[1]','int'),
@assignedto = node.value('assignedto[1]','varchar(50)'),
@piority= node.value('piority[1]','varchar(50)'),
@comment = node.value('comment[1]','varchar(4000)')
from @saveDataXML.nodes('/TeamTaskDetails/Task') nodes(node)
IF (@claimid = 0)
BEGIN
INSERT INTO [dbo].[TeamTaskAssiginment]
([claimid],
[createdate],
[duedate],
[startdate],
[assignedid],
[assiginedto],
[priority],
[comment])
VALUES
(@claimid,
@createdate,
@duedate,
@startdate ,
@assignmentid ,
@assignedto ,
@piority ,
@comment
)
--SET @claimid = SCOPE_IDENTITY()
END
ELSE
BEGIN
Update [dbo].[TeamTaskAssiginment] set
[email protected] ,
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected]
END
Execute Stored Procedure
Exec Equip_SaveTeamTaskAssigineeDetails @saveDataXML =
<TeamTaskDetails>
<Task claimid="1" createdate="2000-12-16" duedate="2000-12-16" startdate="2000-12-16" assignmentid="1" assignedto="test" piority="HIGH" comment="test" />
</TeamTaskDetails>
Если я выполнил хранимую процедуру его показывая 0 Ряды Затронутые значения не вставляя
Пожалуйста, помогите решить эту проблему.
Вы неправильно назначаете переменные, чтобы извлечь атрибуты, а не текст, используйте '@', например. 'SELECT @claimid = node.value ('@ Claimid [1]', 'int')' - Это означает, что ваши переменные равны нулю. поэтому в 'IF' вы переходите к заявлению об обновлении. Я предполагаю, что в таблице нет строк, поэтому вы получаете «0 строк». Вы уверены, что ваш запрос в состоянии «ELSE» верен? Нет предложения where, похоже, что вы обновляете каждую запись в таблице? – GarethD
ваш запрос xml неверен, он возвращает null, поэтому вставка не будет удалена. и ваш запрос на обновление не имеет условия where, которое, как я предполагаю, может не быть предназначенным поведением. – Tanner