posts - 101,  comments - 29,  trackbacks - 0

          首先我們先創(chuàng)建兩個(gè)表:


          CREATE TABLE [dbo].[Roles](
          [Name] [nvarchar](50NOT NULL,
          [CreatedAt] [datetime] NOT NULL,
          [UpdatedAt] [datetime] NOT NULL,
          [Deleted] [bit] NOT NULL,
          [RoleStatus] [int] NOT NULL,
          [ID] [uniqueidentifier] NOT NULL,
          [SystemID] [uniqueidentifier] NOT NULL,
          [RoleKind] [int] NOT NULL,
           
          CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED 
          (
          [ID] ASC
          )
          WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
          ON [PRIMARY]


          GO


          EXEC sys.sp_addextendedproperty @name=N'MS_Description'@value=N'1=默認(rèn)管理員角色,2=普通角色' , @level0type=N'SCHEMA',@level0name=N'dbo'@level1type=N'TABLE',@level1name=N'Roles'@level2type=N'COLUMN',@level2name=N'RoleKind'
          GO


          ALTER TABLE [dbo].[Roles] ADD  CONSTRAINT [DF_Roles_Deleted]  DEFAULT ((0)) FOR [Deleted]
          GO


          ALTER TABLE [dbo].[Roles] ADD  CONSTRAINT [DF_Roles_RoleStatus]  DEFAULT ((1)) FOR [RoleStatus]
          GO


          ALTER TABLE [dbo].[Roles] ADD  CONSTRAINT [DF_Roles_RoleKind]  DEFAULT ((2)) FOR [RoleKind]
          GO

          CREATE TABLE [dbo].[RoleFunctions](
          [MappingID] [int] IDENTITY(1,1NOT NULL,
          [Status] [int] NOT NULL,
          [RoleID] [uniqueidentifier] NOT NULL,
          [FunctionID] [uniqueidentifier] NOT NULL,
           
          CONSTRAINT [PK_RoleFunctions] PRIMARY KEY CLUSTERED 
          (
          [MappingID] ASC
          )
          WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
          ON [PRIMARY]


          GO


          ALTER TABLE [dbo].[RoleFunctions] ADD  CONSTRAINT [DF_RoleFunctions_Status]  DEFAULT ((0)) FOR [Status]
          GO

          以下是兩個(gè)條SQL查詢語(yǔ)句,但是不同的是一個(gè)是用inner jion,一個(gè)是用left jion,但是兩個(gè)查詢語(yǔ)句的執(zhí)行計(jì)劃差距非常大

          /****** Script for SelectTopNRows command from SSMS  ******/
          SELECT [MappingID]
                ,
          [Status]
                ,
          [RoleID]
                ,
          [FunctionID]
            
          FROM [RoleFunctions]
            
          left join roles on roles.id = rolefunctions.functionid


          SELECT [MappingID]
                ,
          [Status]
                ,
          [RoleID]
                ,
          [FunctionID]
            
          FROM [RoleFunctions]
            
          inner join roles on roles.id = rolefunctions.functionid


          期望高手給予講解……

          posted on 2012-05-19 14:55 mixer-a 閱讀(1993) 評(píng)論(1)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沙坪坝区| 宜都市| 凌云县| 金乡县| 胶南市| 山阳县| 罗定市| 榕江县| 喀喇沁旗| 隆安县| 遂川县| 黎平县| 阜城县| 莱州市| 河源市| 扶风县| 维西| 庆安县| 辽宁省| 石楼县| 平遥县| 冀州市| 胶南市| 潞城市| 吕梁市| 庆城县| 南川市| 锡林郭勒盟| 当雄县| 铜陵市| 台南市| 香格里拉县| 和硕县| 尤溪县| 旬阳县| 英超| 进贤县| 湖南省| 密云县| 赣榆县| 苍山县|