请帮忙!我从我设置的分区切换出时出错。我有下面的脚本和错误信息:
我为每个范围创建了单独的文件组
--创建分区函数
USE [ApplicationLogs]
GO
CREATE PARTITION FUNCTION [FN_SchedulerLog](datetime) AS RANGE LEFT FOR VALUES (N'2016-06-30T23:59:59.998', N'2016-07-31T23:59:59.998', N'2016-08-31T23:59:59.998', N'2016-09-30T23:59:59.998', N'2016-10-31T23:59:59.998', N'2016-11-30T23:59:59.998', N'2016-12-31T23:59:59.998')
--Create Parttion SCHEME
CREATE PARTITION SCHEME [sch_SchedulerLog] AS PARTITION [FN_SchedulerLog] TO ([FG_SchedulerLog_06_16], [FG_SchedulerLog_07_16], [FG_SchedulerLog_08_16], [FG_SchedulerLog_09_16], [FG_SchedulerLog_10_16], [FG_SchedulerLog_11_16], [FG_SchedulerLog_12_16], [PRIMARY])
DROP INDEX [pkSchedulerLogId] ON [dbo].[SchedulerLog] WITH ( ONLINE = OFF )
CREATE UNIQUE NONCLUSTERED INDEX [pkSchedulerLogId] ON [dbo].[SchedulerLog]
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = …
Run Code Online (Sandbox Code Playgroud) 请在下面对我的 SQL 查询提供任何帮助,我们将不胜感激。我不熟悉如何循环数据库来截断表。我尝试过的内容如下:
DECLARE @DynamicSQL AS VARCHAR(MAX) = '';
DECLARE @dbName nvarchar(1000) ='SP_%%';
SELECT @DynamicSQL = @DynamicSQL + 'Use' + QUOTENAME(NAME) + '; '
FROM sys.databases
WHERE NAME LIKE 'SP_%%';
SELECT @DynamicSQL = @DynamicSQL + 'TRUNCATE TABLE ' + QUOTENAME(NAME) + '; '
FROM sys.tables
WHERE name LIKE 'log%'
PRINT @DynamicSQL
--EXEC (@DynamicSQL)
Run Code Online (Sandbox Code Playgroud)
我得到的结果如下:
Use[SP__20180314]; Use[SPAUT__06092018];
Run Code Online (Sandbox Code Playgroud)
但我想要这样的东西:
Use[SP_20180314] Truncate Table log; Use[SPAUT_06092018] Truncate Table log;
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 SQL Server 2016 上的数据库中截断日志表。谢谢