我正在使用 SQL Server 2008 R2。我正在尝试一些分区的东西并且有一些问题。
这是一个非常简单的例子:
CREATE PARTITION FUNCTION MyPartitionFunction (int)
AS RANGE LEFT FOR VALUES (1,2)
CREATE PARTITION SCHEME MyPartitionScheme AS
PARTITION MyPartitionFunction ALL TO ([PRIMARY])
CREATE FUNCTION CalcPartitionValue (@value int) RETURNS int
WITH SCHEMABINDING AS
BEGIN
if @value % 2 = 0 return 1
return 2
END
CREATE TABLE MyTable
(ID INT NOT NULL)
ON MyPartitionScheme (dbo.CalcPartitionValue(ID));
我想使用用户定义的函数作为分区函数的输入。有什么办法可以让这个工作吗?
我知道可以使用用户定义的函数创建计算列。但是对超过 3 亿行的表进行模式更新不会那么快。这就是为什么我要问是否可以直接使用用户定义的函数。