如何将nvarchar(max)快速转换为nvarchar(n)并指示有更多数据?
例如:将列Address转换为nvarchar(100),如果Address超过100个字符,则用“...”替换最后3个字符。
如何将nvarchar(max)快速转换为nvarchar(n)并指示有更多数据?
例如:将列Address转换为nvarchar(100),如果Address超过100个字符,则用“...”替换最后3个字符。
UPDATE t
SET t.Address = SUBSTRING(t.Address, 1, 97) + '...'
FROM TableName t
WHERE LEN(t.Address) > 100;
ALTER TABLE dbo.TableName
ALTER COLUMN Address NVARCHAR (100);
NVARCHAR(100)
,然后检查该列是否超过100个字符? - LamakALTER TABLE
将会抛出一个错误。 - LamakUPDATE Table
SET [Address] = CASE
WHEN LEN([Address]) > 100
THEN CAST([Address] AS NVARCHAR(97)) + N'...'
ELSE CAST([Address] AS NVARCHAR(100))
END
现在根据以上语句,你需要改变列的数据类型,因为所有超过100个字符的数据都将被截断。
ALTER TABLE TableName
ALTER COLUMN [Address] NVARCHAR(100)
GO
WHEN LEN([Address]) > 100
吗? - Lamak