我正在使用具有大量用户定义的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'
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是获取用户定义类型的基础类型的最佳方法?