Sql server 2008 使用参数化存储过程用新XML更新XML列

Sql server 2008 使用参数化存储过程用新XML更新XML列,sql-server-2008,Sql Server 2008,对于我来说,尝试在SQLServer2008数据库中使用XML列是一件新鲜事。我很少看到与此相关的帖子,但我发现这很难 让我以最简单的形式提出我的问题 我有一个数据库表dbo.cXML,其中包含EmailID(nVarchar(128))、ClientID(int)和cycleXML(XML)列 我的中间件组件实现了复杂的业务逻辑,并在逻辑处理后吐出XML 现在我有一个要求,需要以下几点: a) 带有参数的存储过程,用于对上表执行检查,以查看给定EmailID和客户端ID是否已有XML。如果存在

对于我来说,尝试在SQLServer2008数据库中使用XML列是一件新鲜事。我很少看到与此相关的帖子,但我发现这很难

让我以最简单的形式提出我的问题

  • 我有一个数据库表dbo.cXML,其中包含EmailID(nVarchar(128))、ClientID(int)和cycleXML(XML)列

  • 我的中间件组件实现了复杂的业务逻辑,并在逻辑处理后吐出XML

  • 现在我有一个要求,需要以下几点:

  • a) 带有参数的存储过程,用于对上表执行检查,以查看给定EmailID和客户端ID是否已有XML。如果存在记录,请使用Update query更新整个XML,否则只需插入XML即可

    b) 一个能够根据请求将完整的XML发送回中间件组件的存储过程

    有人能帮我理解伪代码吗。谢谢你的帮助

    谢谢,
    Yagya

    不完全确定您所说的需求3b是什么意思,但这对您有帮助吗

    IF EXISTS (SELECT 1 FROM dbo.cXML WHERE EmailID = @YourEmailID AND ClientID = @YourClientID)
    BEGIN
        UPDATE dbo.cXML
        SET cycleXML = @YourXML
        WHERE EmailID = @YourEmailID AND ClientID = @YourClientID
    END
    ELSE BEGIN
        INSERT INTO dbo.cXML (EmailID, ClientID, cycleXML)
        SELECT @YourEmailID, @YourClientID, @YourXML
    END