我有一个相当大的历史表,现在正在减慢我的用户的速度。我为缓解该问题所做的一件大事是将文本字段转换为 nvarchar(max) 或 varchar(max) 字段。由于可能出现 Unicode/转换问题,我将使用 nvarchar。
我的问题是,如果前端声明了显式的TEXT值,插入表时会隐式转换吗?
我想知道这些字段是使用我用于初始转换的 ALTER TABLE 语句隐式转换的。
这个表被用在很多地方,并且在其引用的任何地方放置一个 CONVERT 至少可以说是有问题的。
我尝试在本地进行测试,但在本地运行时不允许使用本地 TEXT 变量。
可以只用演员吗?
CAST( @VARIABLEFROMFRONTEND as NVARCHAR(MAX) )
您可以在它周围添加一个 if 语句来检查是否有错误,然后再允许它尝试转换。万一出现错误,不确定会发生但值得在那里。