T-SQL 中的结构类型
Structure types in T-SQL
据我所知SQL 服务器不支持包含其他类型的结构类型,
例如你不能做这样的事情
create type User as(UserId int, Name varchar(10), Address varchar(255))
然后使用它:
declare @user User
set @user.UserId = 10
...
也许有人知道任何有助于模拟此行为的 library/framework,例如,它可以是一些使用 XML 数据类型保存值并检索它们的函数集。
我要解决的问题是在存储过程之间传递大量参数。我有一个接受近 30 个参数的程序,而不是将一些逻辑和路径参数传递给另一个程序,然后第二个程序将一些逻辑和路径参数传递给第三个程序。然后要求发生变化,新参数应添加到所有程序中。使用结构数据类型,它转换为仅在数据类型中添加新字段。另一个优点是可读性。
美好的一天,
我的第一个猜测是您需要用户定义的 table 类型,正如其他提到的那样。但无论如何你都错了,你可以创建包含其他类型的新类型。例如,我使用我使用 SQLCLR 创建的 "complex number" 类型。
你可以在这里看到一个简单的代码:
http://www.codeproject.com/Articles/15651/Creating-User-Defined-Data-Types-in-SQL-Server
this is not the code that I use :-) I just find this on Google now.
澄清一下,"complex number" 是由 2 个简单的十进制数构建的,这意味着我们使用两种类型来创建用户定义的数据类型:-)
I use other types as well for example another one is BIGBIGINT. I have a very big table which need integers bigger than BIGINT... I created another type BIGBIGINT which use two BIGINT types.
希望有用:-)
据我所知SQL 服务器不支持包含其他类型的结构类型, 例如你不能做这样的事情
create type User as(UserId int, Name varchar(10), Address varchar(255))
然后使用它:
declare @user User
set @user.UserId = 10
...
也许有人知道任何有助于模拟此行为的 library/framework,例如,它可以是一些使用 XML 数据类型保存值并检索它们的函数集。
我要解决的问题是在存储过程之间传递大量参数。我有一个接受近 30 个参数的程序,而不是将一些逻辑和路径参数传递给另一个程序,然后第二个程序将一些逻辑和路径参数传递给第三个程序。然后要求发生变化,新参数应添加到所有程序中。使用结构数据类型,它转换为仅在数据类型中添加新字段。另一个优点是可读性。
美好的一天,
我的第一个猜测是您需要用户定义的 table 类型,正如其他提到的那样。但无论如何你都错了,你可以创建包含其他类型的新类型。例如,我使用我使用 SQLCLR 创建的 "complex number" 类型。
你可以在这里看到一个简单的代码: http://www.codeproject.com/Articles/15651/Creating-User-Defined-Data-Types-in-SQL-Server
this is not the code that I use :-) I just find this on Google now.
澄清一下,"complex number" 是由 2 个简单的十进制数构建的,这意味着我们使用两种类型来创建用户定义的数据类型:-)
I use other types as well for example another one is BIGBIGINT. I have a very big table which need integers bigger than BIGINT... I created another type BIGBIGINT which use two BIGINT types.
希望有用:-)