【发布时间】:2021-01-30 21:03:52
【问题描述】:
我目前无法解决以下挑战:
我在包含 HTML 数据的表“数据”中有一个列 (LongTextfield1)。表格“数据”中的每一行基本上是一个带有文本和图片的文档。在某些情况下,同一列 (LongTextfield1) 中包含多张图片。如果是图片,将显示以下引用图片的代码:
\Download.aspx?DocumentID={SomeGUID}
为了使其更具挑战性,这段代码可以多次包含在同一列中,具体取决于 HTML(文档)中包含多少图片。所有图片都有自己的 GUID。到目前为止,一切都很好。这已经存在于列中。
在我想显示这些图片的应用程序中,我还需要一个“RecordID”。这是每张图片的唯一 ID。所以,结果应该是:
\Download.aspx?DocumentID={SomeGUID}&Recorid=SomeID
我有一个表“DocumentData”,其中包含每张图片的唯一 GUID (DocumentID) 和 RecordID。所以,我知道哪个 RecordID 属于每个 GUID。
我需要一个将 RecordID 添加到相应 GUID 后面的存储过程(或其他自动机制)。我曾尝试对 {SomeGUID}&RecorID=SomeID' 使用 REPLACE '{SomeGUID}' ,但这没有用。下面是存储过程,它由“DocumentData”表中的数据提供。它不断用每个可能的 GUID+RecordID 组合替换相同的字符串: (DocumentID={SomeGUID}&RecordID=1{SomeGUID2}&RecordID2.. 等等,这不是我想要的。@DocumentID 和 @Origin (RecorID) 在存储程序参考'DocumentData'表:
CREATE PROCEDURE [dbo].[Replace_Picture2] (
@DocumentID UNIQUEIDENTIFIER,
@Origin varchar(100)
) AS
BEGIN
update
data
set longtextfield1 = REPLACE(CAST(LongTextField1 AS VARCHAR(max)), ltrim(cast(@DocumentID as varchar(100))) + '}', ltrim(cast(@DocumentID as varchar(100))) + '}' + '&RecordID=' + @Origin + '"')
where 1=1
and pageid = 1
and groupid = 2
and subgroupid = 8
END
GO
如何根据表“DocumentData”中的组合在 DocumentID 后面添加 RecordID?感谢您的帮助!
【问题讨论】:
标签: sql sql-server stored-procedures replace sql-update