不要对 SQL 2005 及更高版本使用文本数据类型
对于 SQL2005 之前的 SQL Server 版本,存储大量数据的唯一方法是使用 text、ntext 或 image 数据类型。 SQL2005 引入了新的数据类型来替换这些数据类型,同时还允许所有有用的字符串处理函数工作。 将数据类型更改为新的 SQL2005+ 等效项应该相对简单且易于实现(取决于表的大小)。 那么,为什么要等呢? 现在转换数据类型。
如何检测此问题:
SELECT SCHEMA_NAME(o.uid)+'.'+o.name+'.'+col.name+CHAR(13)+CHAR(10)
FROM syscolumns col
INNER JOIN sysobjects o ON col.id=o.id
INNER JOIN systypes ON col.xtype=systypes.xtype
WHERE o.type='U' AND OBJECTPROPERTY(o.id, N'IsMSShipped')=0 AND systypes.name IN ('text', 'ntext')
ORDER BY SCHEMA_NAME(o.uid), o.name, col.name;
如何更正:
将数据类型更改为SQL2005+版本。 text 应转换为 varchar(max),ntext 应转换为 nvarchar(max),image 应转换为 varbinary(max)。
严重程度: 低
难度级别: 简单