我正在使用具有大量用户定义 SQL 类型的旧数据库。我正在.NET 中编写一个方法,在该方法中我在 SqlParameter 对象中定义参数。我需要用户定义类型的底层 SQL 类型,以便在运行时动态创建参数时正确定义参数。
为此,我创建了这个过程:
(@typename sysname)
AS
SET NOCOUNT ON
SELECT distinct
st.name as UserType,
t.precision, t.max_length,
bt.name as BaseType
FROM
dbo.syscolumns c
INNER JOIN dbo.systypes st ON st.xusertype = c.xusertype
INNER JOIN dbo.systypes bt ON bt.xusertype = c.xtype
inner join sys.types t on st.name = t.name
WHERE
st.name = 'bVendor'
我想知道这是否是获取用户定义类型的底层基本类型的最佳方法?