posts - 101,  comments - 29,  trackbacks - 0

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


          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=默認管理員角色,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

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

          /****** 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 閱讀(1991) 評論(1)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 清涧县| 湖南省| 滦南县| 合山市| 许昌县| 工布江达县| 凭祥市| 德惠市| 武汉市| 陇西县| 罗山县| 华池县| 睢宁县| 灌南县| 交口县| 托克托县| 华容县| 志丹县| 富民县| 信阳市| 景德镇市| 雅江县| 宁南县| 齐齐哈尔市| 深泽县| 昭觉县| 梨树县| 三台县| 安溪县| 娄烦县| 大港区| 河池市| 浙江省| 福泉市| 东乡| 霞浦县| 桑植县| 旺苍县| 年辖:市辖区| 黑龙江省| 田东县|