如何将变量中存在的现有数据与SQL Server表中的新数据连接起来?

How to concatenate exiting data present in a variable with new data in a SQL Server table?

提问人:BANANA19 提问时间:4/26/2023 最后编辑:marc_sBANANA19 更新时间:4/26/2023 访问量:51

问:

我想知道有没有办法将变量与传入数据连接起来。我目前有一个名为 TABLE-A 的表,其中包含地址变量,其中已经有数据。有一个前端应用程序,用户通过该应用程序将信息输入到此表中。我想知道有没有办法将新的传入信息与现有信息连接起来。下面是示例。

例:

表-A(原始视图)

A列 B列
John 唐宁街12号

表 A(用户输入新信息后的预期视图)

A列 B列
John 唐宁街12号;华盛顿广场公园24号;

在预期视图中,“24 WASHINGTON SQUARE PARK”是用户输入的新地址,在表中,我们正在捕获它并将其添加到现有地址“12 DOWNING STREET”。我尝试创建一个触发器,但我们的前端不接受启用了触发器的表。因此,触发器不是一种选择。

如果有人能提供任何类型的解决方案,那就太好了。

谢谢 香蕉19

sql 服务器 ssms-18

评论

0赞 FAB 4/26/2023
SELECT ColumnB + '; ' + @Variable + ';'...或UPDATE TableA SET ColumnB = ColumnB + '; ' + @Variable + ';' WHERE ColumnA = 'condition'
1赞 siggemannen 4/26/2023
通常,每列存储多个“部分”数据不是一个好主意。为什么需要连接东西?
0赞 Yitzhak Khabinsky 4/26/2023
在提出问题时,您需要提供一个最小的可重现示例:(1) DDL 和样本数据填充,即 CREATE 表加上 INSERT T-SQL 语句。(2)你需要做什么,即逻辑和你的代码尝试在T-SQL中实现它。(3) 期望的输出,基于上面 #1 中的示例数据。(4) 您的 SQL Server 版本 (SELECT @@version;)。所有问题都是文本,没有图像。
0赞 BANANA19 4/26/2023
@siggemannen 我们正试图捕获企业为名叫 John 的人提供的所有地址。因此,多个企业来到前端应用程序并输入他们拥有的地址,我们的目标是在地址列中捕获他们拥有的所有地址。因此串联。
0赞 Cetin Basoz 4/26/2023
首先,前端无法决定后端的工作方式。其次,以这种方式存储数据不是一个好主意。第三,如果你不关心前两者,那么你可以使用 + 运算符在更新命令中连接数据。

答:

0赞 Olesia Dudareva 4/26/2023 #1

如果您需要更新数据库中的任何内容,只需使用 update(您可以在 SET 部分添加额外的空格/分隔符):

UPDATE TABLE-A SET [COLUMN B] = [COLUMN B] + NEW INFORMATION
WHERE [COLUMN A] = USER

但是,如果用户通过UI删除某些内容,那将是一个问题。在我看来,这里的方法应该有所不同。如果它是数据库中的一列,则 UI 应返回当前地址的完整行。因此,您需要使用UI中的一行来更新相应的行,而无需进行任何操作。

或者还有另一种方法 - 将所有地址分开保存。结构如下:

A列 B列
John 唐宁街12号
John 24华盛顿广场公园

以这种格式(插入/更新/删除/选择/搜索)管理数据很容易。