假设我有表 A:BookingsPerPerson
Person_Id ArrivalDate DepartureDate
123456 2012-01-01 2012-01-04
213415 2012-01-02 2012-01-07
Run Code Online (Sandbox Code Playgroud)
我需要通过视图实现以下目标:
Person_Id ArrivalDate DepartureDate Jan-01 Jan-02 Jan-03 Jan-04 Jan-05 Jan-06 Jan-07
123456 2012-01-01 2012-01-04 1 1 1 1
213415 2012-01-02 2012-01-07 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
该系统用于活动,因此每次酒店预订可能需要 1 到 15 天的时间,但不会超过此时间。任何想法将不胜感激。
几天前,我正在使用 SQL Server 2008 中的维护计划测试一些东西。
我创建了一个来重建索引并每周进行一次完整备份。(我知道,我今天发现了坏事)。
问题是,由于事务日志增长了很多(大约 80gb,db 是 60gb),备份没有运行。现在我一整天都在谷歌上搜索,看看是否有办法将事务日志缩小到以前的大小,比如 200mb。
更新
这是在我们的生产服务器上,维护计划如下:
重建索引
成功备份完整数据库
成功时 删除超过两周的备份。
这还没有完成,它在某个时候坏了,所以我想重建索引花了太长时间。所以备份没有发生。
我们还每小时备份一次交易日志。
这可能吗?为什么会发生这种情况?我知道在重建时它会在事务日志或类似的东西中创建索引的副本,但是有可能摆脱这个副本吗?
这就是我在 Job History 上的内容,所以看起来由于某种原因它在创建索引时失败了,并且由于计划成功进行备份,它停在那里。
信息 :
以用户身份执行:SHOCKLOGIC\DB1$。...ress: 2013-08-05 03:01:03.43 Source: Rebuild Index Task Executing query "ALTER INDEX [PK_ActivitiesPerGroup] ON [dbo].[Acti...".: 12% Complete End Progress Progress: 2013- 08-05 03:01:03.43 来源:重建索引任务执行查询“USE [Eventlogic]”。:完成 12% 结束进度进度:2013-08-05 03:01:03.52 来源:重建索引任务执行查询“ALTER INDEX [PK_ActivitiesPerHotelCat] ON [dbo].[A...".: 12% complete End Progress Progress: 2013-08-05 03:01:03.52 Source: Rebuild Index Task Executing query "USE [Eventlogic] ".: 12% complete End Progress Progress: 2013-08-05 …
我正在尝试创建一个存储过程来将ntext
我的数据库中的所有列转换为nvarchar(max)
.
这是代码
ALTER PROCEDURE [dbo].[usp_SL_ConvertNtextToNvarchar]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @table_name nvarchar(128)
DECLARE @column_name nvarchar(128)
DECLARE @totalCount int
DECLARE @count int
SET @totalCount = 0;
SET @count = 0;
-- Eventlogic
DECLARE tables_cursor CURSOR FOR
SELECT so.name as table_name, sc.name as column_name
FROM sys.objects so
JOIN sys.columns sc ON so.object_id = sc.object_id
JOIN sys.types stp ON sc.user_type_id = stp.user_type_id
AND stp.name = 'ntext'
WHERE so.type = 'U' -- to show only user tables
OPEN tables_cursor …
Run Code Online (Sandbox Code Playgroud)