此问题与之前的问题有关, Grouping by or iterating through partitions in SQL
我需要支持SQL Server 2005,2008,2008 R2,并且不能依赖于企业版或完整版(必须在SQL Server Express中工作)。
我要做的是创建一个用户定义的计算列,该列基本上是分区by子句的row_number()
或dense_rank()
。这需要像索引一样,因为无论何时将行添加到表中,都会自动生成此用户定义的列。
我查看了以下Microsoft链接,该链接解释了如何基于函数http://msdn.microsoft.com/en-us/library/ms186755.aspx创建列。它并不完全到达那里。
可能无法实现,尤其是没有完整版本的SQL Server。有什么想法吗?
答案 0 :(得分:2)
分区的主要功能是将单个对象拆分为多个相对独立的数据库对象。分区允许:
不能通过任何其他手段来完成。
所以我认为你正在寻找一种方法来为一些密钥的每个组合分配一个ID,该密钥由多个列组成。根据您想要实现的结果,有多种方法可以实现:
IDENTITY
属性)。将此密钥插入主表以用作“分区ID”。使用触发器或连接自动插入值。请注意,SQL Server只能使用一列进行分区。