sql-server - SQL Server 表分区中列的显式转换
问题描述
我有如下表:
CREATE TABLE [dbo].[PartitionExample]
(
[dateTimeColumn1] [datetime] NOT NULL,
CONSTRAINT [PK_PartitionExample] PRIMARY KEY CLUSTERED
(
[dateTimeColumn1] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
我创建了如下分区函数:
CREATE PARTITION FUNCTION DateRangePF (INT)
AS RANGE RIGHT FOR VALUES ( 20180601,20180901,20181201,20190301)
然后,我为它创建了分区方案:
CREATE PARTITION SCHEME DateRangePS
AS PARTITION DateRangePF TO
(FG032018_SampleDB,FG062018_SampleDB,FG092018_SampleDB,
FG122018_SampleDB,FG032019_SampleDB);
现在,当我将分区方案应用于此表时,我想将 datetime 数据类型的 [dateTimeColumn1] 列显式转换为 INT 数据类型。但是当我尝试它时,我得到了语法错误:
ALTER TABLE [dbo].[PartitionExample] ADD
CONSTRAINT [PK_PartitionExample] PRIMARY KEY CLUSTERED
(
dateTimeColumn1 ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS =
ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90)
ON DateRangePS(
convert(INT, CONVERT(CHAR(8), dateTimeColumn1, 112));
你们能告诉我吗
- 在这种情况下如何实现显式转换。
- 当我将 datetime 列或 char(8) 列显式转换为 INT 列进行分区时,它的性能也会更好。谢谢您的帮助。
解决方案
推荐阅读
- python - 为共享共同值的每一行合并数据框中列的内容
- r - FUN(X[[i]], ...) 中的错误:使用 st_polygon 时 is.numeric(x) 不是 TRUE
- terragrunt - Terragrunt plan-all auto-init 似乎不起作用
- android - 如果使用嵌套的recyclerView,如何从适配器的第一个位置加载recyclerView上的arraylist中的第0个数据?
- php - Wordpress:如何使用自动换行
仅在帖子中
- python - matplotlib 中动画的正确实现
- continuous-integration - Gitlab CI/CD 只部署一个阶段
- laravel - 返回重复记录的id
- php - 我的 AES 函数正确加密值,但解密返回 FALSE
- java - 如何以 1000 行为单位读取大型 .txt 文件