小编Djo*_*oe1的帖子

表分区切换出问题

请帮忙!我从我设置的分区切换出时出错。我有下面的脚本和错误信息:

我为每个范围创建了单独的文件组

--创建分区函数

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)

index sql-server sql-server-2008-r2 partitioning

7
推荐指数
1
解决办法
6494
查看次数

使用动态查询循环遍历 Db 以获取截断语句

请在下面对我的 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 上的数据库中截断日志表。谢谢

sql-server truncate

2
推荐指数
1
解决办法
2144
查看次数