0.7.820.0.sqldataprovider.sql

来自「BugNET is an issue tracking and project 」· SQL 代码 · 共 1,382 行 · 第 1/3 页

SQL
1,382
字号
	Active = @Active,
	AllowAttachments = @AllowAttachments
WHERE
	ProjectId = @ProjectId
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Altering [dbo].[BugNet_Project_GetProjectsByUserName]'
GO
ALTER PROCEDURE [dbo].[BugNet_Project_GetProjectsByUserName]
	@UserName nvarchar(255),
	@ActiveOnly bit
AS
DECLARE @UserId UNIQUEIDENTIFIER
SELECT @UserId = UserId FROM aspnet_users WHERE Username = @UserName

SELECT DISTINCT
	Project.ProjectId,
	Name,
	Code,
	Description,
	UploadPath,
	ManagerUserId,
	CreatorUserId,
	CreateDate,
	Project.Active,
	AccessType,
	Managers.UserName ManagerDisplayName,
	Creators.UserName CreatorDisplayName,
	AllowAttachments
FROM 
	Project
	INNER JOIN aspnet_users AS Managers ON Managers.UserId = Project.ManagerUserId	
	INNER JOIN aspnet_users AS Creators ON Creators.UserId = Project.CreatorUserId
	Left JOIN UserProjects ON UserProjects.ProjectId = Project.ProjectId
WHERE
	 (Project.AccessType = 1 AND Project.Active = @ActiveOnly) OR
              (Project.AccessType = 2 AND Project.Active = @ActiveOnly AND UserProjects.UserId = @UserId)
              
ORDER BY Name ASC
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Altering [dbo].[BugNet_Project_CreateNewProject]'
GO
ALTER PROCEDURE [dbo].[BugNet_Project_CreateNewProject]
 @Name nvarchar(50),
 @Code nvarchar(3),
 @Description 	nvarchar(80),
 @ManagerUserName nvarchar(255),
 @UploadPath nvarchar(80),
 @Active int,
 @AccessType int,
 @CreatorUserName nvarchar(255),
 @AllowAttachments int
AS
IF NOT EXISTS( SELECT ProjectId,Code  FROM Project WHERE LOWER(Name) = LOWER(@Name) OR LOWER(Code) = LOWER(@Code) )
BEGIN
	DECLARE @ManagerUserId UNIQUEIDENTIFIER
	DECLARE @CreatorUserId UNIQUEIDENTIFIER
	SELECT @ManagerUserId = UserId FROM aspnet_users WHERE Username = @ManagerUserName
	SELECT @CreatorUserId = UserId FROM aspnet_users WHERE Username = @CreatorUserName
	
	INSERT Project 
	(
		Name,
		Code,
		Description,
		UploadPath,
		ManagerUserId,
		CreateDate,
		CreatorUserId,
		AccessType,
		Active,
		AllowAttachments
	) 
	VALUES
	(
		@Name,
		@Code,
		@Description,
		@UploadPath,
		@ManagerUserId ,
		GetDate(),
		@CreatorUserId,
		@AccessType,
		@Active,
		@AllowAttachments
	)
 	RETURN @@IDENTITY
END
ELSE
  RETURN 0
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[Bug]'
GO
ALTER TABLE [dbo].[Bug] WITH NOCHECK ADD
CONSTRAINT [FK_Bug_Project] FOREIGN KEY ([ProjectID]) REFERENCES [dbo].[Project] ([ProjectID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[Component]'
GO
ALTER TABLE [dbo].[Component] WITH NOCHECK ADD
CONSTRAINT [FK_Component_Component] FOREIGN KEY ([ComponentID]) REFERENCES [dbo].[Component] ([ComponentID])
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[ProjectMailBox]'
GO
ALTER TABLE [dbo].[ProjectMailBox] WITH NOCHECK ADD
CONSTRAINT [FK_ProjectMailBox_Project] FOREIGN KEY ([ProjectId]) REFERENCES [dbo].[Project] ([ProjectID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[RolePermission]'
GO
ALTER TABLE [dbo].[RolePermission] WITH NOCHECK ADD
CONSTRAINT [FK_RolePermission_Permission] FOREIGN KEY ([PermissionId]) REFERENCES [dbo].[Permission] ([PermissionId])
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[Version]'
GO
ALTER TABLE [dbo].[Version] WITH NOCHECK ADD
CONSTRAINT [FK_Version_Project] FOREIGN KEY ([ProjectID]) REFERENCES [dbo].[Project] ([ProjectID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[BugAttachment]'
GO
ALTER TABLE [dbo].[BugAttachment] ADD
CONSTRAINT [FK_BugAttachment_Bug] FOREIGN KEY ([BugID]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[ProjectCustomFieldSelection]'
GO
ALTER TABLE [dbo].[ProjectCustomFieldSelection] ADD
CONSTRAINT [FK_ProjectCustomFieldSelection_ProjectCustomFields] FOREIGN KEY ([CustomFieldId]) REFERENCES [dbo].[ProjectCustomFields] ([CustomFieldId]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[BugTimeEntry]'
GO
ALTER TABLE [dbo].[BugTimeEntry] ADD
CONSTRAINT [FK_BugTimeEntry_Bug] FOREIGN KEY ([BugId]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO


/* Migrating Component Data */
PRINT N'Migrating Components'
DECLARE @ProjectId int
DECLARE @RowNum int
DECLARE @ProjectCount int
DECLARE @ComponentCount int
DECLARE @RC int

SET @RowNum = 0
SELECT @ProjectCount = COUNT(ProjectId) FROM Project
SELECT TOP 1 @ProjectId = ProjectId FROM Project

WHILE @RowNum < @ProjectCount

BEGIN 
	SET @RowNum = @RowNum +1
	SELECT @ComponentCount = COUNT(ComponentId) FROM Bug WHERE ComponentId = 0 AND ProjectId = @ProjectId
	PRINT @ComponentCount
	IF @ComponentCount > 0
	BEGIN
		EXEC @RC = BugNet_Component_CreateNewComponent @ProjectId, 'All', 0
		UPDATE Bug SET ComponentId = @RC WHERE ComponentId = 0 AND ProjectId = @ProjectId
	END

	SELECT TOP 1 @ProjectId=ProjectId FROM Project WHERE ProjectId > @ProjectId
END 
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO


PRINT N'Adding foreign keys to [dbo].[Bug]'
GO
ALTER TABLE [dbo].[Bug] ADD
CONSTRAINT [FK_Bug_Component] FOREIGN KEY ([ComponentID]) REFERENCES [dbo].[Component] ([ComponentID]) ON DELETE CASCADE,
CONSTRAINT [FK_Bug_Priority] FOREIGN KEY ([PriorityID]) REFERENCES [dbo].[Priority] ([PriorityID]),
CONSTRAINT [FK_Bug_Resolution] FOREIGN KEY ([ResolutionID]) REFERENCES [dbo].[Resolution] ([ResolutionID]),
CONSTRAINT [FK_Bug_Status] FOREIGN KEY ([StatusID]) REFERENCES [dbo].[Status] ([StatusID]),
CONSTRAINT [FK_Bug_Type] FOREIGN KEY ([TypeID]) REFERENCES [dbo].[Type] ([TypeID])
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[RolePermission]'
GO
ALTER TABLE [dbo].[RolePermission] ADD
CONSTRAINT [FK_RolePermission_Roles] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[Roles] ([RoleId]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[BugComment]'
GO
ALTER TABLE [dbo].[BugComment] ADD
CONSTRAINT [FK_BugComment_Bug] FOREIGN KEY ([BugID]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[UserRoles]'
GO
ALTER TABLE [dbo].[UserRoles] ADD
CONSTRAINT [FK_UserRoles_Roles] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[Roles] ([RoleId]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[ProjectCustomFields]'
GO
ALTER TABLE [dbo].[ProjectCustomFields] ADD
CONSTRAINT [FK_ProjectCustomFields_Project] FOREIGN KEY ([ProjectId]) REFERENCES [dbo].[Project] ([ProjectID]) ON DELETE CASCADE,
CONSTRAINT [FK_ProjectCustomFields_ProjectCustomFieldType] FOREIGN KEY ([CustomFieldTypeId]) REFERENCES [dbo].[ProjectCustomFieldType] ([CustomFieldTypeId]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[BugNotification]'
GO
ALTER TABLE [dbo].[BugNotification] ADD
CONSTRAINT [FK_BugNotification_Bug] FOREIGN KEY ([BugID]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[RelatedBug]'
GO
ALTER TABLE [dbo].[RelatedBug] ADD
CONSTRAINT [FK_RelatedBug_Bug] FOREIGN KEY ([BugID]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[ProjectCustomFieldValues]'
GO
ALTER TABLE [dbo].[ProjectCustomFieldValues] ADD
CONSTRAINT [FK_ProjectCustomFieldValues_Bug] FOREIGN KEY ([BugId]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[BugHistory]'
GO
ALTER TABLE [dbo].[BugHistory] ADD
CONSTRAINT [FK_BugHistory_Bug] FOREIGN KEY ([BugID]) REFERENCES [dbo].[Bug] ([BugID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding foreign keys to [dbo].[Roles]'
GO
ALTER TABLE [dbo].[Roles] ADD
CONSTRAINT [FK_Roles_Project] FOREIGN KEY ([ProjectId]) REFERENCES [dbo].[Project] ([ProjectID]) ON DELETE CASCADE
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO


/*

Start Role & Permission Migration 

For each project in the projects table create a new role and permissions
*/
PRINT N'Migrating Adding Roles for Existing Projects'
GO
EXEC BugNet_Role_CreateNewRole @ProjectId = NULL, @Name = 'Super Users', @Description = 'A role for project super users', @AutoAssign = 0
GO
declare @pId int
declare @RowNum int
declare @ProjectCount int
	
set @RowNum = 0 

select @ProjectCount = count(ProjectId) from Project
select top 1 @pId = ProjectId from Project


WHILE @RowNum < @ProjectCount

BEGIN
	SET @RowNum = @RowNum + 1
	exec BugNet_Role_CreateNewRole @ProjectId = @pID, @Name = 'Project Administrators', @Description = 'Project Administrators', @AutoAssign = 0
	exec BugNet_Role_CreateNewRole @ProjectId = @pID, @Name = 'Read Only', @Description = 'Read Only', @AutoAssign = 0
	exec BugNet_Role_CreateNewRole @ProjectId = @pID, @Name = 'Reporter', @Description = 'Reporter', @AutoAssign = 0
	exec BugNet_Role_CreateNewRole @ProjectId = @pID, @Name = 'Developer', @Description = 'Developer', @AutoAssign = 0
	exec BugNet_Role_CreateNewRole @ProjectId = @pID, @Name = 'Quality Assurance', @Description = 'Quality Assurance', @AutoAssign = 0
	SELECT TOP 1 @pId=ProjectId FROM Project WHERE ProjectId > @pID 
END
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding permissions for roles'
GO
declare @rId int
declare @RowNum int
declare @RoleCount int
DECLARE @RoleName nvarchar(256)

set @RowNum = 0 

select @RoleCount = count(RoleId) from Roles
select top 1 @rId = RoleId from Roles

WHILE @RowNum < @RoleCount
BEGIN
	SET @RowNum = @RowNum + 1
	SELECT @RoleName = RoleName FROM Roles WHERE RoleId = @rId
	
	IF @RoleName = 'Project Administrators'
	BEGIN
		EXEC dbo.BugNet_Permission_AddRolePermission 1, @rId 
		EXEC dbo.BugNet_Permission_AddRolePermission 2, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 3, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 4, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 5, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 6, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 7, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 8, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 9, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 10, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 11, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 12, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 13, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 14, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 15, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 16, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 17, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 18, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 19, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 20, @rId
	END
	IF @RoleName = 'Read Only'
	BEGIN
		EXEC dbo.BugNet_Permission_AddRolePermission 5, @rId
	END

	IF @RoleName = 'Reporter'
	BEGIN
		EXEC dbo.BugNet_Permission_AddRolePermission 2, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 7, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 10, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 12, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 15, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 3, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 5, @rId
	END

	IF @RoleName = 'Developer'
	BEGIN
		EXEC dbo.BugNet_Permission_AddRolePermission 2, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 7, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 10, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 12, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 15, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 3, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 4, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 5, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 19, @rId
	END

	IF @RoleName = 'Quality Assurance'
	BEGIN
		EXEC dbo.BugNet_Permission_AddRolePermission 2, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 7, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 10, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 12, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 15, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 3, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 4, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 5, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 19, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 17, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 14, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 1, @rId
		EXEC dbo.BugNet_Permission_AddRolePermission 6, @rId
	END
	SELECT TOP 1 @rId=RoleId FROM Roles WHERE RoleId > @rID 
END
GO
/* End Role Permission migration*/
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT 'Updating Host Settings'
UPDATE HostSettings SET SettingValue = '@VERSION@.0' WHERE SettingName = 'Version'
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Adding Administrator to Super Users Role'
EXEC dbo.BugNet_Role_AddUserToRole 'Admin',1
GO
IF EXISTS (SELECT * FROM #tmpErrors) ROLLBACK TRANSACTION
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
IF @@TRANCOUNT>0 BEGIN
PRINT 'The database update succeeded'
COMMIT TRANSACTION
END
ELSE PRINT 'The database update failed'
GO
DROP TABLE #tmpErrors
GO

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?