【发布时间】:2017-07-14 02:59:52
【问题描述】:
我在这样的查询中选择一些字段:
SELECT DISTINCT
SummaryID = CAST(MT.Row_ID AS VARCHAR),
MyCode = MT.My_UUID,
MyDate = MT.MyDateTime,
Hyperlink = MT.Url,
ArticleTypeID = @DefaultArticleTypeID
FROM
@Updates U
JOIN
dbo.MyItems MT ON U.RowID = MT.Row_ID
我将这些值插入到另一个表中,发现其中一个字段产生了这个错误:
字符串或二进制数据将被截断。
那是因为MT.Url 的 URL 比我的目的地可以容纳的长。
所以我的解决方案如下,它只是一个解决方法,因为我们将更改目标表的列作为永久解决方案,但这是一项更大的工作,在那之前,我有:
Hyperlink = SubString(MT.Url, 1, 1000),
并非所有 Url 都会超过该限制,大约只有 1%。
我的问题是,从性能角度来看,这是否是最佳解决方案?我最好在子字符串之前检查第一个长度吗?
【问题讨论】:
-
我们一直使用子字符串,并没有看到任何性能损失。
标签: sql sql-server substring