在管理工作室表设计师中,我的表是
哪一个是正确的?(我想避免将来的兼容性问题)
nvarchar(MAX)
,但在sp_columns
中,它说TYPE_NAME=ntext
和DATA_TYPE=-10
。哪一个是正确的?(我想避免将来的兼容性问题)
nvarchar(MAX)
,但在sp_columns
中,它说TYPE_NAME=ntext
和DATA_TYPE=-10
。有时候,sp_columns过程会返回一些奇怪的信息。我更喜欢直接查看sys.columns中的列,因为这里定义了列的定义。
很容易复制您的示例并证明它实际上是nvarchar(max)。
create table TextTest
(
VarCharCol nvarchar(max)
, NTextCol ntext
)
go
exec sp_columns 'TextTest'
select ColumnName = c.name
, ColumnDataType = t.name
from sys.columns c
join sys.systypes t on t.xusertype = c.user_type_id
where object_id = OBJECT_ID('TextTest')
nvarchar
相同,同样适用于将text
转换为varchar
。 - LONGselect c.name ,c.system_type_id ,ty.name ,ty.precision ,t.name from sys.columns c inner join sys.tables t on t.object_id = c.object_id inner join sys.types ty on ty.system_type_id = c.system_type_id where t.name = 'deleteTable'
- S3S