T-SQL中的结构类型

Ole*_*leg 3 t-sql sql-server sqldatatypes

据我所知,SQL Server不支持包含其他类型的结构类型,例如,你不能做这样的事情

create type User as(UserId int, Name varchar(10), Address varchar(255))
Run Code Online (Sandbox Code Playgroud)

然后使用它:

declare @user User
set @user.UserId = 10
...
Run Code Online (Sandbox Code Playgroud)

也许有人知道任何有助于模拟这种行为的库/框架,例如它可以是一些使用XML数据类型来保存其值并检索它们的函数集.

我试图解决的问题是在存储过程之间传递大量参数.我有接受近30个参数的程序,而不是将一些逻辑和路径这个参数路由到另一个程序,然后第二个程序为第三个程序制作一些逻辑和路径参数.然后需求发生变化,新参数应添加到所有程序中.对于结构数据类型,它转换为仅在数据类型中添加新字段.另一个优点是可读性.

Ron*_*ely 5

美好的一天,

我的第一个猜测是你需要用户定义的表类型,如其他提到的那样.但无论如何你错了,你可以创建包含其他类型的新类型.例如,我使用"复数"类型,我使用SQLCLR创建.

你可以在这里看到一个简单的代码:http: //www.codeproject.com/Articles/15651/Creating-User-Defined-Data-Types-in-SQL-Server

这不是我使用的代码:-)我现在就在谷歌上找到它.

为了澄清,"复数"是由2个​​简单的十进制数构成的,这意味着我们使用两种类型来创建用户定义的数据类型:-)

我也使用其他类型,例如另一个是BIGBIGINT.我有一个非常大的表需要比BIGINT更大的整数...我创建了另一个使用两种BIGINT类型的BIGBIGINT类型.

我希望这有用:-)