Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用每行的创建时间进行表分区_Sql Server_Database Partitioning - Fatal编程技术网

Sql server 使用每行的创建时间进行表分区

Sql server 使用每行的创建时间进行表分区,sql-server,database-partitioning,Sql Server,Database Partitioning,我正在使用SQL Server。我正在寻找一种基于每行的created\u time列的分区表解决方案 例如:当created\u time=2019-12-01(yyyy-MM-dd)我的分区键应该是yyyy*100+MM,即201912 有没有一种方法可以在插入一行时实现这一点,而无需在表中添加额外的列(无需在表中存储分区键) 谢谢 如果您想基于月份进行分区,您应该使用datetime值创建一个分区函数,并且只提供月份边界。我看不出这个整数方案给了你什么值,特别是当你甚至不想存储这个值时?@

我正在使用SQL Server。我正在寻找一种基于每行的
created\u time
列的分区表解决方案

例如:当
created\u time=2019-12-01
yyyy-MM-dd
)我的分区键应该是
yyyy*100+MM
,即201912

有没有一种方法可以在插入一行时实现这一点,而无需在表中添加额外的列(无需在表中存储分区键)


谢谢

如果您想基于月份进行分区,您应该使用datetime值创建一个分区函数,并且只提供月份边界。我看不出这个整数方案给了你什么值,特别是当你甚至不想存储这个值时?@marc_很抱歉混淆,
2019(YYYY)*100+MM=201912
没有混淆。在SQL Server中执行此操作的方法是在创建时对范围进行分区,并在每个月初插入分区边界。@DavidBrowne Microsoft谢谢!在接下来的10年里我该怎么做?我可以用一个程序创建一个120个月的配分函数。如何为这120个月创建文件,是否需要手动干预?您不需要为每个分区创建单独的文件,而且您不应该没有充分的理由。您可以预先创建所有分区,或者每年左右运行一个作业来添加新分区。