如果类型(例如 nvarchar 或 int)是固定长度的,是否可以通过查询某些系统表来使用 t-sql 找出运行时?
我需要这样做的原因是我需要生成 sql-code 运行时并且需要根据某些列的类型(在设计时未知)生成一些声明(DECLARE @foo SOMETYPE(LENGTH)
或DECLARE @foo SOMETYPE
)。
我目前的赌注是,我可以检查是否sys.all_columns.max_length = sys.types.max_length
以及是否假设它是固定长度的(因为max_length
似乎有一个特殊的代码 (-1),至少对于 nvarchar 而言)。