更新长度 > 50 的行
update rows where length > 50
我有一个 table 让我们称它为 'People' 它有一个名为 'Name' 的列 让我们说它曾经有 Varchar(500) 的列规范,现在它将是更改为 Varchar(100)
我可以编写什么 TSQL 来执行此更新,基本上 trim 每行包含一个名称 > 100 个字符
到目前为止我已经知道如何识别行,我知道如何更新行,所以我需要一个游标还是有其他有效的方法? (只有大约 100 行)
SELECT Id, LEFT (Name, 100) FROM People
您想以 LEN(Name) 为条件,它是名称字段的长度。
UPDATE People
SET Name = LEFT(Name, 100)
WHERE LEN(Name) > 100
无需为此应用 CURSOR。并且应该始终避免使用 CURSORS。
检查此解决方案,这是可以完成此操作的另一种方法。
Update People
Set Name = Case When Len(Name) > 5 THen Left(Name, 5) else Name End
我有一个 table 让我们称它为 'People' 它有一个名为 'Name' 的列 让我们说它曾经有 Varchar(500) 的列规范,现在它将是更改为 Varchar(100)
我可以编写什么 TSQL 来执行此更新,基本上 trim 每行包含一个名称 > 100 个字符
到目前为止我已经知道如何识别行,我知道如何更新行,所以我需要一个游标还是有其他有效的方法? (只有大约 100 行)
SELECT Id, LEFT (Name, 100) FROM People
您想以 LEN(Name) 为条件,它是名称字段的长度。
UPDATE People
SET Name = LEFT(Name, 100)
WHERE LEN(Name) > 100
无需为此应用 CURSOR。并且应该始终避免使用 CURSORS。
检查此解决方案,这是可以完成此操作的另一种方法。
Update People
Set Name = Case When Len(Name) > 5 THen Left(Name, 5) else Name End