我有一种情况需要删除字符“。” 来自特定表中具有唯一性约束的 VARCHAR。我宁愿在 SQL 中执行此操作,而不是自定义应用程序代码。我有做出改变的逻辑,但我正在努力克服对 VARCHAR 的唯一性约束。
这是我的测试表:
CREATE TABLE [dbo].[TableName] (
[TableNameID] INT IDENTITY (1, 1) NOT NULL,
[TableInfo] VARCHAR (128) NOT NULL,
CONSTRAINT [unq_TableName] UNIQUE NONCLUSTERED ([TableInfo] ASC)
)
这是进行替换的逻辑(不处理唯一性约束):
UPDATE TableName
SET TableInfo = REPLACE(TableInfo, '.', '_')
WHERE TableInfo LIKE '%.%'
我正在尝试克服使用以下数据集创建的测试:
TableNameID | TableInfo
-------------------------
1 | Test
2 | Test.
3 | Test_
4 | Test__
对此的任何帮助将不胜感激。