如何在T-SQL分区函数中使用变量?边界值定义相关疑问
关于T-SQL分区函数boundary_value定义的疑惑
我已经在MSSQL中创建过分区表,清楚如何设置分区函数的取值,也有每月更新两个分区函数边界值的存储过程,了解通过编程方式创建函数的方法。但近期重读CREATE PARTITION FUNCTION的文档时,对其中boundary_value的定义产生了疑惑。
官方语法定义
CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type ) AS RANGE [ LEFT | RIGHT ] FOR VALUES ( [ boundary_value [ ,...n ] ] )
文档中关于boundary_value的说明
boundary_value是可引用变量的常量表达式,包括用户定义类型变量、函数和用户定义函数,但不能引用Transact-SQL表达式。
具体疑惑点
- 根据表达式的官方定义,常量表达式是代表单一特定数据值的符号,变量显然不属于常量表达式,这和文档里的说明存在矛盾。
- 文档中提到的“函数和用户定义函数”部分也让我困惑,不清楚具体指哪些函数、该如何使用。
- 目前我见过的所有通过编程方式设置边界值的示例,都是通过拼接SQL语句生成
CREATE PARTITION FUNCTION语句,从来没有见过直接将boundary_value设置为引用变量的常量表达式,或是使用函数的示例,因此想明确这段文档说明的具体含义。
内容的提问来源于stack exchange,提问作者D Walker
相关产品推荐
相关产品推荐

