在 SELECT 期间更新 table?

UPDATE table during SELECT?

我正在尝试在 T-SQL.

中完成这一切

表 1 包含:

somename nvarchar(255);

这是我想做的事情的大致思路...“somename”字段包含一串字符。该字符串有时会附加另一个字符串序列,如“abc123”。有时不是。使用尽可能少的 SQL 行,我想更新所有以“abc123”结尾的记录中的 somename 字段,更新后的值将是之前的值,减去“abc123”部分。

举个例子:

select IP_Address,Caption,LEN(Caption) as xlength from Nodes
where right(Caption,18)='.somedomain.com';
update Nodes SET Caption=LEFT(Caption,(xlength-15));

15 当然是字符串 ".somedomain.com"

的长度

这当然行不通,但它应该让您了解我正在努力完成的事情。

你走在正确的轨道上。像下面这样的查询就足够了:

DECLARE @seq Nvarchar(max) ='abc123'

UPDATE yourtable
SET somename = LEFT(somename,LEN(Somename)-LEN(@seq))
WHERE somename like '%' + @seq