设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 8925|回复: 27

一个用户管理的数据库脚本(完整版)

[复制链接]

点击这里给我发消息

发表于 2012-2-14 22:57:29 | 显示全部楼层 |阅读模式













脚本见下面。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

点击这里给我发消息

 楼主| 发表于 2012-2-14 22:58:29 | 显示全部楼层
数据库和表
  1. /*************************************************
  2. --- 创建 [Person] 数据库
  3. --- 日期:2011-02-14
  4. **************************************************/
  5. USE [master]
  6. GO

  7. IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Person')
  8. DROP DATABASE [Person]
  9. GO

  10. CREATE DATABASE [Person] ON
  11. (
  12.         NAME = N'Person',
  13.         FILENAME = N'D:\DB\Person\Person.mdf',
  14.         SIZE = 1024KB,
  15.         MAXSIZE = UNLIMITED,
  16.         FILEGROWTH = 1024KB
  17. )
  18. LOG ON
  19. (
  20.         NAME = N'Person_log',
  21.         FILENAME = N'D:\DB\Person\Person_log.ldf',
  22.         SIZE = 1024KB,
  23.         MAXSIZE = UNLIMITED,
  24.         FILEGROWTH = 1024KB
  25. )
  26. GO

  27. USE [Person]
  28. GO


  29. /*************************************************
  30. --- 创建表
  31. **************************************************/
  32. GO

  33. --------------------------------------------------
  34. --- 表  :USysVersion
  35. --- 用途:用户管理数据库版本
  36. --------------------------------------------------
  37. CREATE TABLE [dbo].[USysVersion](
  38.         [ID]                        [int] IDENTITY(1,1) NOT NULL,
  39.         [DBSystem]                [varchar](50) NOT NULL,
  40.         [Main]                        [int] NOT NULL,
  41.         [Sub]                        [int] NULL Default(0),
  42.         [CreateDate]        [datetime] NULL Default (GetDate()),
  43.         [Version] AS (convert(varchar,[Main]) + '.' + right(('0000' + convert(varchar,[Sub])),4)),
  44.         CONSTRAINT [PK_USysVersion] PRIMARY KEY CLUSTERED
  45.         (
  46.                 [ID] ASC
  47.         )
  48. )
  49. GO

  50. EXEC sp_addextendedproperty
  51.         @name=N'MS_Description',
  52.         @value=N'用户管理数据库版本',
  53.         @level0type=N'USER',
  54.         @level0name=N'dbo',
  55.         @level1type=N'TABLE',
  56.         @level1name=N'USysVersion'
  57. GO

  58. --------------------------------------------------
  59. --- 表  :USysUsers
  60. --- 用途:存储用户
  61. --------------------------------------------------
  62. CREATE TABLE [dbo].[USysUsers](
  63.         [UID] [int] IDENTITY(1000,1) NOT NULL,
  64.         [UserName] [nvarchar](50) NOT NULL,
  65.         [Password] [varchar](256) NOT NULL DEFAULT (''),
  66.         [IsSystem] [bit] NOT NULL DEFAULT (0),
  67.         [Description] [nvarchar](256) NULL,
  68.         [Enabled] [bit] NOT NULL DEFAULT (1),
  69.         [CreateTime] [datetime] NOT NULL DEFAULT (GetDate()),
  70.         CONSTRAINT [PK_USysUsers] PRIMARY KEY CLUSTERED
  71.         (
  72.                 [UID] ASC
  73.         ),
  74.         CONSTRAINT [IX_USysUsers] UNIQUE NONCLUSTERED
  75.         (
  76.                 [UserName] ASC
  77.         )
  78. )
  79. GO

  80. EXEC sp_addextendedproperty
  81.         @name=N'MS_Description',
  82.         @value=N'用户表',
  83.         @level0type=N'USER',
  84.         @level0name=N'dbo',
  85.         @level1type=N'TABLE',
  86.         @level1name=N'USysUsers'
  87. GO

  88. --------------------------------------------------
  89. --- 表  :USysUserExtender
  90. --- 用途:存储用户扩展属性
  91. --- 依赖:dbo.USysUserExtender
  92. --------------------------------------------------
  93. CREATE TABLE [dbo].[USysUserExtender](
  94.         [UID] [int] NOT NULL,
  95.         [RealName] [nvarchar](50) NULL,
  96.         [Gender] [nchar](1) NULL,
  97.         [Birthday] [datetime] NULL,
  98.         [Email] [nvarchar](256) NULL,
  99.         [Company] [nvarchar](50) NULL,
  100.         [Post] [nvarchar](10) NULL,                /* 职位/岗位/职务 */
  101.         [Title] [nvarchar](10) NULL,        /* 称谓/头衔/职称 */
  102.         [Mobile] [varchar](50) NULL,
  103.         [Tel] [varchar](50) NULL,
  104.         [Province] [nvarchar](10) NULL,
  105.         [City] [nvarchar](10) NULL,
  106.         [ZipCode] [varchar](6) NULL,
  107.         CONSTRAINT [PK_USysUserExtender] PRIMARY KEY CLUSTERED
  108.         (
  109.                 [UID] ASC
  110.         ),
  111.         CONSTRAINT [FK_USysUserExtender_USysUsers]
  112.                 FOREIGN KEY([UID]) REFERENCES [dbo].[USysUsers] ([UID])
  113.                 ON UPDATE CASCADE
  114.                 ON DELETE CASCADE
  115. )
  116. GO

  117. EXEC sp_addextendedproperty
  118.         @name=N'MS_Description',
  119.         @value=N'用户扩展属性表',
  120.         @level0type=N'USER',
  121.         @level0name=N'dbo',
  122.         @level1type=N'TABLE',
  123.         @level1name=N'USysUserExtender'
  124. GO

  125. --------------------------------------------------
  126. --- 表  :USysGroups
  127. --- 用途:存储用户组
  128. --------------------------------------------------
  129. CREATE TABLE [dbo].[USysGroups](
  130.         [GID] [int] IDENTITY(1000,1) NOT NULL,
  131.         [GroupName] [nvarchar](50) NOT NULL,
  132.         [IsSystem] [bit] NOT NULL DEFAULT (0),
  133.         [Description] [nvarchar](256) NULL,
  134.         [Enabled] [bit] NOT NULL DEFAULT (1),
  135.         [CreateTime] [datetime] NOT NULL DEFAULT (GetDate()),
  136.         CONSTRAINT [PK_USysGroups] PRIMARY KEY CLUSTERED
  137.         (
  138.                 [GID] ASC
  139.         ),
  140.         CONSTRAINT [IX_USysGroups] UNIQUE NONCLUSTERED
  141.         (
  142.                 [GroupName] ASC
  143.         )

  144. )
  145. GO

  146. EXEC sp_addextendedproperty
  147.         @name=N'MS_Description',
  148.         @value=N'用户组表',
  149.         @level0type=N'USER',
  150.         @level0name=N'dbo',
  151.         @level1type=N'TABLE',
  152.         @level1name=N'USysGroups'
  153. GO

  154. --------------------------------------------------
  155. --- 表  :USysGroupUsers
  156. --- 用途:存储用户组的用户
  157. --------------------------------------------------
  158. CREATE TABLE [dbo].[USysGroupUsers](
  159.         [GID] [int] NOT NULL,
  160.         [UID] [int] NOT NULL,
  161.         CONSTRAINT [PK_USysGroupUsers] PRIMARY KEY CLUSTERED
  162.         (
  163.                 [GID] ASC,
  164.                 [UID] ASC
  165.         ),
  166.         CONSTRAINT [FK_USysGroupUsers_USysGroups] FOREIGN KEY([GID])
  167.                 REFERENCES [dbo].[USysGroups] ([GID])
  168.                 ON UPDATE CASCADE
  169.                 ON DELETE CASCADE,
  170.         CONSTRAINT [FK_USysGroupUsers_USysUsers] FOREIGN KEY([UID])
  171.                 REFERENCES [dbo].[USysUsers] ([UID])
  172.                 ON UPDATE CASCADE
  173.                 ON DELETE CASCADE
  174. )
  175. GO

  176. EXEC sp_addextendedproperty
  177.         @name=N'MS_Description',
  178.         @value=N'用户组用户表',
  179.         @level0type=N'USER',
  180.         @level0name=N'dbo',
  181.         @level1type=N'TABLE',
  182.         @level1name=N'USysGroupUsers'
  183. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 22:59:16 | 显示全部楼层
函数
  1. /*************************************************
  2. --- 创建函数
  3. **************************************************/
  4. GO

  5. --------------------------------------------------
  6. --- 函数:fbUSysGeustIsEnabled
  7. --- 目的:判定是否允许匿名来宾用户
  8. --- 返回:0 - 不允许,1 - 允许
  9. --- 依赖:dbo.USysUsers
  10. --------------------------------------------------
  11. CREATE FUNCTION [dbo].[fbUSysGeustIsEnabled]()
  12. RETURNS bit
  13. AS
  14. BEGIN
  15.         DECLARE @ret bit

  16.         -- 从[dbo].[USysUsers]表中获取 Guest 用户启用
  17.         -- 作为系统是否允许匿名
  18.         SELECT @ret = [Enabled] FROM [dbo].[USysUsers] WHERE [UID] = 0

  19.         IF @ret IS NULL
  20.                 SET @ret = 0

  21.         RETURN @ret
  22. END
  23. GO

  24. EXEC sp_addextendedproperty
  25.         @name=N'MS_Description',
  26.         @value=N'判定是否允许匿名来宾用户,0 - 不允许,1 - 允许',
  27.         @level0type=N'USER',
  28.         @level0name=N'dbo',
  29.         @level1type=N'FUNCTION',
  30.         @level1name=N'fbUSysGeustIsEnabled'
  31. GO

  32. --------------------------------------------------
  33. --- 函数:_ftUSysUsers
  34. --- 用途:获取用户列表(内部调用)
  35. --- 依赖:dbo.USysUsers/dbo.USysUserExtender
  36. --------------------------------------------------
  37. CREATE FUNCTION [dbo].[_ftUSysUsers]
  38. (       
  39.         @System bit = NULL,
  40.         @Enabled bit = NULL
  41. )
  42. RETURNS TABLE
  43. AS
  44. RETURN
  45. (
  46.         SELECT
  47.                 u.UID,
  48.                 u.UserName,
  49.                 u.Password,
  50.                 u.IsSystem,
  51.                 u.Description,
  52.                 u.CreateTime,
  53.                 e.RealName,
  54.                 e.Gender,
  55.                 e.Birthday,
  56.                 e.Email,
  57.                 e.Company,
  58.                 e.Post,
  59.                 e.Title,
  60.                 e.Mobile,
  61.                 e.Tel,
  62.                 e.Province,
  63.                 e.City,
  64.                 e.ZipCode
  65.         FROM
  66.                 dbo.USysUsers AS u LEFT OUTER JOIN
  67.                 dbo.USysUserExtender AS e ON u.UID = e.UID
  68.         WHERE
  69.                 ((u.Enabled = @Enabled) OR (@Enabled IS NULL)) AND
  70.                 ((u.IsSystem = @System) OR (@System IS NULL))
  71. )
  72. GO

  73. EXEC sp_addextendedproperty
  74.         @name=N'MS_Description',
  75.         @value=N'获取用户列表(内部调用)',
  76.         @level0type=N'USER',
  77.         @level0name=N'dbo',
  78.         @level1type=N'FUNCTION',
  79.         @level1name=N'_ftUSysUsers'
  80. GO

  81. --------------------------------------------------
  82. --- 函数:_ftUSysGroups
  83. --- 用途:获取用户组列表(内部调用)
  84. --- 依赖:dbo.USysGroups
  85. --------------------------------------------------
  86. CREATE FUNCTION [dbo].[_ftUSysGroups]
  87. (       
  88.         @System bit = NULL,
  89.         @Enabled bit = NULL
  90. )
  91. RETURNS TABLE
  92. AS
  93. RETURN
  94. (
  95.         SELECT [GID]
  96.                   ,[GroupName]
  97.                   ,[IsSystem]
  98.                   ,[Description]
  99.                   ,[Enabled]
  100.                   ,[CreateTime]
  101.           FROM [dbo].[USysGroups]
  102.          WHERE (([Enabled] = @Enabled) OR (@Enabled IS NULL)) AND
  103.                    (([IsSystem] = @System) OR (@System IS NULL))
  104. )
  105. GO

  106. EXEC sp_addextendedproperty
  107.         @name=N'MS_Description',
  108.         @value=N'获取用户组列表(内部调用)',
  109.         @level0type=N'USER',
  110.         @level0name=N'dbo',
  111.         @level1type=N'FUNCTION',
  112.         @level1name=N'_ftUSysGroups'
  113. GO

  114. --------------------------------------------------
  115. --- 函数:ftGetUserGroups
  116. --- 用途:根据用户 ID 获取共所在的用户组列表
  117. --- 参数:@UID
  118. --- 依赖:dbo.USysUsers/dbo.USysGroups/dbo.USysGroupUsers
  119. --------------------------------------------------
  120. CREATE FUNCTION [dbo].[ftGetUserGroups](@UID int)
  121. RETURNS TABLE
  122. AS
  123. RETURN
  124. (
  125.          SELECT        g.GID, g.GroupName, g.Description, g.IsSystem
  126.            FROM        dbo.USysUsers u INNER JOIN
  127.                         dbo.USysGroupUsers gu ON u.UID = gu.UID INNER JOIN
  128.                         dbo.USysGroups g ON gu.GID = g.GID
  129.           WHERE        (u.UID = @UID) AND (g.Enabled = 1)
  130. )

  131. GO

  132. EXEC sp_addextendedproperty
  133.         @name=N'MS_Description',
  134.         @value=N'根据用户 ID 获取其所在的用户组列表',
  135.         @level0type=N'USER',
  136.         @level0name=N'dbo',
  137.         @level1type=N'FUNCTION',
  138.         @level1name=N'ftGetUserGroups'
  139. GO

  140. --------------------------------------------------
  141. --- 函数:ftGetGroupUsers
  142. --- 用途:根据用户组 ID 获取其当前用户列表
  143. --- 参数:@GID
  144. --- 依赖:dbo.USysUsers/dbo.USysGroups/dbo.USysGroupUsers
  145. --------------------------------------------------
  146. CREATE FUNCTION [dbo].[ftGetGroupUsers](@GID int)
  147. RETURNS TABLE
  148. AS
  149. RETURN
  150. (
  151.          SELECT        u.UID, u.UserName, u.Description, u.IsSystem
  152.            FROM        dbo.USysGroups g INNER JOIN
  153.                         dbo.USysGroupUsers gu ON g.GID = gu.GID INNER JOIN
  154.                         dbo.USysUsers u ON gu.UID = u.UID
  155.           WHERE        (g.GID = @GID) AND (u.Enabled = 1)
  156. )
  157. GO

  158. EXEC sp_addextendedproperty
  159.         @name=N'MS_Description',
  160.         @value=N'根据用户组 ID 获取其当前用户列表',
  161.         @level0type=N'USER',
  162.         @level0name=N'dbo',
  163.         @level1type=N'FUNCTION',
  164.         @level1name=N'ftGetGroupUsers'
  165. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 23:02:30 | 显示全部楼层
过程 (一)
  1. /*************************************************
  2. --- 创建过程
  3. **************************************************/
  4. GO

  5. --------------------------------------------------
  6. --- 过程:_paUSysSetUserEnabled
  7. --- 目的:设置用户是否启用(内部调用)
  8. --- 参数:
  9. ---                @UID - 用户 ID
  10. ---                @Enabled - 0-不允许,1-允许
  11. --- 返回:0 - 不成功
  12. --- 依赖:dbo.USysUsers
  13. --------------------------------------------------
  14. CREATE PROCEDURE [dbo].[_paUSysSetUserEnabled]
  15. (
  16.         @UID int,
  17.         @Enabled bit
  18. )
  19. AS
  20. BEGIN
  21.         IF @Enabled IS NOT NULL
  22.                 UPDATE [dbo].[USysUsers]
  23.                 SET [Enabled] = @Enabled
  24.                 WHERE [UID] = @UID

  25.         RETURN @@ROWCOUNT
  26. END
  27. GO

  28. EXEC sp_addextendedproperty
  29.         @name=N'MS_Description',
  30.         @value=N'设置用户是否启用(内部调用)',
  31.         @level0type=N'USER',
  32.         @level0name=N'dbo',
  33.         @level1type=N'PROCEDURE',
  34.         @level1name=N'_paUSysSetUserEnabled'
  35. GO

  36. --------------------------------------------------
  37. --- 过程:_paUSysSetGroupEnabled
  38. --- 目的:设置用户组是否启用(内部调用)
  39. --- 参数:
  40. ---                @GID - 用户组 ID
  41. ---                @Enabled - 0-不允许,1-允许
  42. --- 返回:0 - 不成功
  43. --- 依赖:dbo.USysGroups
  44. --------------------------------------------------
  45. CREATE PROCEDURE [dbo].[_paUSysSetGroupEnabled]
  46. (
  47.         @GID int,
  48.         @Enabled bit
  49. )
  50. AS
  51. BEGIN
  52.         IF @Enabled IS NOT NULL
  53.                 UPDATE [dbo].[USysGroups]
  54.                 SET [Enabled] = @Enabled
  55.                 WHERE [GID] = @GID

  56.         RETURN @@ROWCOUNT
  57. END
  58. GO

  59. EXEC sp_addextendedproperty
  60.         @name=N'MS_Description',
  61.         @value=N'设置用户组是否启用(内部调用)',
  62.         @level0type=N'USER',
  63.         @level0name=N'dbo',
  64.         @level1type=N'PROCEDURE',
  65.         @level1name=N'_paUSysSetGroupEnabled'
  66. GO

  67. --------------------------------------------------
  68. --- 过程:paGroupAddUser
  69. --- 目的:用户组添加用户
  70. --- 参数:
  71. ---                @GID - 用户组 ID
  72. ---                @UID - 用户 ID
  73. --- 返回:1 - 成功
  74. ---                 0 - 不成功
  75. ---                -1 - 用户组不存在
  76. ---                -2 - 用户不存在
  77. ---                -3 - 用户组已经存在该用户
  78. --- 依赖:dbo.USysGroupUsers/dbo.USysUsers/dbo.USysGroups
  79. --------------------------------------------------
  80. CREATE PROCEDURE [dbo].[paGroupAddUser](@GID int, @UID int)
  81. AS BEGIN
  82.         DECLARE @ret int
  83.         SET @ret = 0
  84.         IF NOT EXISTS(SELECT [GroupName] FROM [dbo].[USysGroups] WHERE [GID] = @GID)
  85.                 SET @ret = -1
  86.         ELSE
  87.         IF NOT EXISTS(SELECT [UserName] FROM [dbo].[USysUsers] WHERE [UID] = @UID)
  88.                 SET @ret = -2
  89.         ELSE
  90.         IF NOT EXISTS(SELECT [GID] FROM [dbo].[USysGroupUsers] WHERE ([GID] = @GID) AND ([UID] = @UID))
  91.                 BEGIN
  92.                 INSERT INTO [dbo].[USysGroupUsers]
  93.                         ([GID],        [UID]) VALUES
  94.                         (@GID,        @UID)
  95.                 SET @ret = @@ROWCOUNT
  96.                 END
  97.         ELSE
  98.                 SET @ret = -3
  99.                
  100.         RETURN @ret
  101. END
  102. GO

  103. EXEC sp_addextendedproperty
  104.         @name=N'MS_Description',
  105.         @value=N'向用户组中添加用户',
  106.         @level0type=N'USER',
  107.         @level0name=N'dbo',
  108.         @level1type=N'PROCEDURE',
  109.         @level1name=N'paGroupAddUser'
  110. GO

  111. --------------------------------------------------
  112. --- 过程:paGroupRemoveUser
  113. --- 目的:用户组移除用户
  114. --- 参数:
  115. ---                @GID - 用户组 ID
  116. ---                @UID - 用户 ID
  117. --- 返回:1 - 成功
  118. ---                 0 - 不成功
  119. ---                -1 - 用户组不存在
  120. ---                -4 - 用户组不存在该用户
  121. --- 依赖:dbo.USysGroupUsers/dbo.USysUsers/dbo.USysGroups
  122. --------------------------------------------------
  123. CREATE PROCEDURE [dbo].[paGroupRemoveUser](@GID int, @UID int)
  124. AS BEGIN
  125.         DECLARE @ret int
  126.         SET @ret = 0
  127.        
  128.         IF NOT EXISTS(SELECT [GroupName] FROM [dbo].[USysGroups] WHERE [GID] = @GID)
  129.                 SET @ret = -1
  130.         ELSE
  131.         IF EXISTS(SELECT [GID] FROM [dbo].[USysGroupUsers] WHERE ([GID] = @GID) AND ([UID] = @UID))
  132.                 BEGIN
  133.                 DELETE [dbo].[USysGroupUsers] WHERE ([GID] = @GID) AND ([UID] = @UID)
  134.                 SET @ret = @@ROWCOUNT
  135.                 END
  136.         ELSE
  137.                 SET @ret = -4
  138.                
  139.         RETURN @ret
  140. END
  141. GO

  142. EXEC sp_addextendedproperty
  143.         @name=N'MS_Description',
  144.         @value=N'从用户组中移除用户',
  145.         @level0type=N'USER',
  146.         @level0name=N'dbo',
  147.         @level1type=N'PROCEDURE',
  148.         @level1name=N'paGroupRemoveUser'
  149. GO

  150. --------------------------------------------------
  151. --- 过程:paUserDisableGuest
  152. --- 目的:停用匿名用户
  153. --- 返回:0 - 不成功
  154. --- 依赖:dbo.USysUsers/dbo._paUSysSetUserEnabled
  155. --------------------------------------------------
  156. CREATE PROCEDURE [dbo].[paUserDisableGuest]
  157. AS
  158. BEGIN
  159.         DECLARE        @return_value int
  160.         EXEC        @return_value = [dbo].[_paUSysSetUserEnabled]
  161.                         @UID = 0,
  162.                         @Enabled = 0

  163.         RETURN @return_value
  164. END
  165. GO

  166. EXEC sp_addextendedproperty
  167.         @name=N'MS_Description',
  168.         @value=N'停用匿名用户',
  169.         @level0type=N'USER',
  170.         @level0name=N'dbo',
  171.         @level1type=N'PROCEDURE',
  172.         @level1name=N'paUserDisableGuest'
  173. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 23:03:22 | 显示全部楼层
过程 (二)
  1. --------------------------------------------------
  2. --- 过程:paUserEnableGuest
  3. --- 目的:启用匿名用户
  4. --- 返回:0 - 不成功
  5. --- 依赖:dbo.USysUsers/dbo._paUSysSetUserEnabled
  6. --------------------------------------------------
  7. CREATE PROCEDURE [dbo].[paUserEnableGuest]
  8. AS
  9. BEGIN
  10.         DECLARE        @return_value int
  11.         EXEC        @return_value = [dbo].[_paUSysSetUserEnabled]
  12.                         @UID = 0,
  13.                         @Enabled = 1

  14.         RETURN @return_value
  15. END
  16. GO

  17. EXEC sp_addextendedproperty
  18.         @name=N'MS_Description',
  19.         @value=N'启用匿名用户',
  20.         @level0type=N'USER',
  21.         @level0name=N'dbo',
  22.         @level1type=N'PROCEDURE',
  23.         @level1name=N'paUserEnableGuest'
  24. GO

  25. --------------------------------------------------
  26. --- 过程:paUserDisableUser
  27. --- 目的:停用指定用户
  28. --- 返回:0 - 不成功
  29. --- 依赖:dbo.USysUsers/dbo._paUSysSetUserEnabled
  30. --------------------------------------------------
  31. CREATE PROCEDURE [dbo].[paUserDisableUser](@UID int)
  32. AS
  33. BEGIN
  34.         DECLARE        @return_value int
  35.         EXEC        @return_value = [dbo].[_paUSysSetUserEnabled]
  36.                         @UID = @UID,
  37.                         @Enabled = 0

  38.         RETURN @return_value
  39. END
  40. GO

  41. EXEC sp_addextendedproperty
  42.         @name=N'MS_Description',
  43.         @value=N'停用指定用户',
  44.         @level0type=N'USER',
  45.         @level0name=N'dbo',
  46.         @level1type=N'PROCEDURE',
  47.         @level1name=N'paUserDisableUser'
  48. GO

  49. --------------------------------------------------
  50. --- 过程:paUserEnableUser
  51. --- 目的:启用用户
  52. --- 返回:0 - 不成功
  53. --- 依赖:dbo.USysUsers/dbo._paUSysSetUserEnabled
  54. --------------------------------------------------
  55. CREATE PROCEDURE [dbo].[paUserEnableUser](@UID int)
  56. AS
  57. BEGIN
  58.         DECLARE        @return_value int
  59.         EXEC        @return_value = [dbo].[_paUSysSetUserEnabled]
  60.                         @UID = @UID,
  61.                         @Enabled = 1

  62.         RETURN @return_value
  63. END
  64. GO

  65. EXEC sp_addextendedproperty
  66.         @name=N'MS_Description',
  67.         @value=N'启用指定用户',
  68.         @level0type=N'USER',
  69.         @level0name=N'dbo',
  70.         @level1type=N'PROCEDURE',
  71.         @level1name=N'paUserEnableUser'
  72. GO

  73. --------------------------------------------------
  74. --- 过程:paUsersAdd
  75. --- 用途:增加新用户
  76. --- 返回:0-不成功
  77. --- 依赖:dbo.USysUsers
  78. --------------------------------------------------
  79. CREATE PROCEDURE [dbo].[paUsersAdd]
  80. (
  81.         @UID int OUTPUT,                                /* 用户ID 输出新增自动产生 */
  82.         @UserName nvarchar(50),                        /* 用户名 */
  83.         @Password varchar(256),                        /* 密码 */
  84.         @Description nvarchar(256),                /* 描述 */
  85.         @IsSystem bit = 0,                                /* 是否系统用户 0-普通用户,1-系统用户 */
  86.         @Enabled bit = 1                                /* 是否启用 0-停用,1-启用 */
  87. )
  88. AS
  89. BEGIN
  90.         DECLARE @ret int

  91.         INSERT INTO [dbo].[USysUsers]
  92.                            ([UserName]
  93.                            ,[Password]
  94.                            ,[IsSystem]
  95.                            ,[Description]
  96.                            ,[Enabled])
  97.                  VALUES
  98.                            (@UserName
  99.                            ,@Password
  100.                            ,@IsSystem
  101.                            ,@Description
  102.                            ,@Enabled)

  103.         IF @@ROWCOUNT >0
  104.                 SET @ret = SCOPE_IDENTITY( )
  105.         ELSE
  106.                 SET @ret = 0

  107.         SET @UID = @ret
  108.        
  109.         RETURN @ret
  110. END
  111. GO

  112. EXEC sp_addextendedproperty
  113.         @name=N'MS_Description',
  114.         @value=N'增加新用户',
  115.         @level0type=N'USER',
  116.         @level0name=N'dbo',
  117.         @level1type=N'PROCEDURE',
  118.         @level1name=N'paUsersAdd'
  119. GO

  120. --------------------------------------------------
  121. --- 过程:paUsersDel
  122. --- 用途:删除指定用户
  123. --- 返回:0-不成功
  124. --- 依赖:dbo.USysUsers
  125. --------------------------------------------------
  126. CREATE PROCEDURE [dbo].[paUsersDel]
  127. (
  128.         @UID int
  129. )
  130. AS
  131. BEGIN
  132.         DELETE [dbo].[USysUsers] WHERE [UID] = @UID

  133.         RETURN @@ROWCOUNT
  134. END
  135. GO

  136. EXEC sp_addextendedproperty
  137.         @name=N'MS_Description',
  138.         @value=N'删除指定用户',
  139.         @level0type=N'USER',
  140.         @level0name=N'dbo',
  141.         @level1type=N'PROCEDURE',
  142.         @level1name=N'paUsersDel'
  143. GO

  144. --------------------------------------------------
  145. --- 过程:paUserChangePassword
  146. --- 用途:更改指定用户密码
  147. --- 返回:0-不成功
  148. --- 依赖:dbo.USysUsers
  149. --------------------------------------------------
  150. CREATE PROCEDURE [dbo].[paUserChangePassword]
  151. (
  152.         @UID int,                                /* 用户ID */
  153.         @Password varchar(256)        /* 密码 */
  154. )
  155. AS
  156. BEGIN
  157.         UPDATE        [dbo].[USysUsers]
  158.         SET                [Password] = @Password
  159.         WHERE        [UID] = @UID

  160.         RETURN @@ROWCOUNT
  161. END
  162. GO

  163. EXEC sp_addextendedproperty
  164.         @name=N'MS_Description',
  165.         @value=N'更改指定用户密码',
  166.         @level0type=N'USER',
  167.         @level0name=N'dbo',
  168.         @level1type=N'PROCEDURE',
  169.         @level1name=N'paUserChangePassword'
  170. GO

  171. --------------------------------------------------
  172. --- 过程:paUserChangeDescription
  173. --- 用途:更改指定用户描述
  174. --- 返回:0-不成功
  175. --- 依赖:dbo.USysUsers
  176. --------------------------------------------------
  177. CREATE PROCEDURE [dbo].[paUserChangeDescription]
  178. (
  179.         @UID int,                                        /* 用户ID */
  180.         @Description varchar(256)        /* 描述 */
  181. )
  182. AS
  183. BEGIN
  184.         UPDATE        [dbo].[USysUsers]
  185.         SET                [Description] = @Description
  186.         WHERE        [UID] = @UID

  187.         RETURN @@ROWCOUNT
  188. END
  189. GO

  190. EXEC sp_addextendedproperty
  191.         @name=N'MS_Description',
  192.         @value=N'更改指定用户描述',
  193.         @level0type=N'USER',
  194.         @level0name=N'dbo',
  195.         @level1type=N'PROCEDURE',
  196.         @level1name=N'paUserChangeDescription'
  197. GO

  198. --------------------------------------------------
  199. --- 过程:paUserChangeUserName
  200. --- 用途:更改指定用户用户名
  201. --- 返回:0-不成功
  202. --- 依赖:dbo.USysUsers
  203. --------------------------------------------------
  204. CREATE PROCEDURE [dbo].[paUserChangeUserName]
  205. (
  206.         @UID int,                                /* 用户ID */
  207.         @UserName nvarchar(50)        /* 用户名 */
  208. )
  209. AS
  210. BEGIN
  211.         UPDATE        [dbo].[USysUsers]
  212.         SET                [UserName] = @UserName
  213.         WHERE        [UID] = @UID

  214.         RETURN @@ROWCOUNT
  215. END
  216. GO

  217. EXEC sp_addextendedproperty
  218.         @name=N'MS_Description',
  219.         @value=N'更改指定用户用户名',
  220.         @level0type=N'USER',
  221.         @level0name=N'dbo',
  222.         @level1type=N'PROCEDURE',
  223.         @level1name=N'paUserChangeUserName'
  224. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 23:04:36 | 显示全部楼层
过程 (三)
  1. --------------------------------------------------
  2. --- 过程:paUserUpdateExtender
  3. --- 用途:更新指定用户的扩展属性
  4. --- 返回:0-不成功
  5. --- 依赖:dbo.USysUserExtender
  6. --------------------------------------------------
  7. CREATE PROCEDURE [dbo].[paUserUpdateExtender]
  8. (
  9.         @UID                int,
  10.         @RealName        nvarchar(50)        = NULL,
  11.         @Gender                nchar(1)                = NULL,
  12.         @Birthday        datetime                = NULL,
  13.         @Email                nvarchar(256)        = NULL,
  14.         @Company        nvarchar(50)        = NULL,
  15.         @Post                nvarchar(10)        = NULL,
  16.         @Title                nvarchar(10)        = NULL,
  17.         @Mobile                varchar(50)                = NULL,
  18.         @Tel                varchar(50)                = NULL,
  19.         @Province        nvarchar(10)        = NULL,
  20.         @City                nvarchar(10)        = NULL,
  21.         @ZipCode        varchar(6)                = NULL
  22. )
  23. AS
  24. BEGIN
  25.         IF EXISTS (SELECT [UID] FROM [dbo].[USysUserExtender] WHERE [UID] = @UID)
  26.                 UPDATE [dbo].[USysUserExtender]
  27.                    SET [RealName]        = @RealName
  28.                           ,[Gender]                = @Gender
  29.                           ,[Birthday]        = @Birthday
  30.                           ,[Email]                = @Email
  31.                           ,[Company]        = @Company
  32.                           ,[Post]                = @Post
  33.                           ,[Title]                = @Title
  34.                           ,[Mobile]                = @Mobile
  35.                           ,[Tel]                = @Tel
  36.                           ,[Province]        = @Province
  37.                           ,[City]                = @City
  38.                           ,[ZipCode]        = @ZipCode
  39.                  WHERE [UID] = @UID
  40.         ELSE
  41.                 INSERT INTO [dbo].[USysUserExtender]
  42.                         ([UID],[RealName],[Gender],[Birthday],[Email],[Company],[Post],[Title],[Mobile],[Tel],[Province],[City],[ZipCode])
  43.                          VALUES
  44.                         (
  45.                                 @UID,
  46.                                 @RealName,
  47.                                 @Gender,
  48.                                 @Birthday,
  49.                                 @Email,
  50.                                 @Company,
  51.                                 @Post,
  52.                                 @Title,
  53.                                 @Mobile,
  54.                                 @Tel,
  55.                                 @Province,
  56.                                 @City,
  57.                                 @ZipCode
  58.                         )

  59.         RETURN @@ROWCOUNT
  60. END
  61. GO

  62. EXEC sp_addextendedproperty
  63.         @name=N'MS_Description',
  64.         @value=N'更新指定用户的扩展属性',
  65.         @level0type=N'USER',
  66.         @level0name=N'dbo',
  67.         @level1type=N'PROCEDURE',
  68.         @level1name=N'paUserUpdateExtender'
  69. GO

  70. --------------------------------------------------
  71. --- 过程:paUserSetExtender
  72. --- 用途:设置指定用户的指定扩展属性
  73. --- 返回:0-不成功
  74. --- 依赖:dbo.USysUserExtender
  75. --------------------------------------------------
  76. CREATE PROCEDURE [dbo].[paUserSetExtender]
  77. (
  78.         @UID                        int,
  79.         @ExtenderName        sysname,
  80.         @Value                        sql_variant        = NULL
  81. )
  82. AS
  83. BEGIN
  84.         DECLARE @ret int
  85.         SET @ret = 0

  86.         IF NOT EXISTS (SELECT [UID] FROM [dbo].[USysUserExtender] WHERE [UID] = @UID)
  87.                 INSERT INTO [dbo].[USysUserExtender] ([UID]) VALUES (@UID)

  88.         IF @@ERROR = 0
  89.                 BEGIN
  90.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('RealName')
  91.                                 BEGIN
  92.                                         UPDATE [dbo].[USysUserExtender] SET [RealName]        = CAST(@Value AS nvarchar(50)) WHERE [UID] = @UID
  93.                                         SET @ret = @ret + @@ROWCOUNT
  94.                                 END
  95.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Gender')
  96.                                 BEGIN
  97.                                         UPDATE [dbo].[USysUserExtender] SET [Gender]        = CAST(@Value AS nchar(1)) WHERE [UID] = @UID
  98.                                         SET @ret = @ret + @@ROWCOUNT
  99.                                 END
  100.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Birthday')
  101.                                 BEGIN
  102.                                         UPDATE [dbo].[USysUserExtender] SET [Birthday]        = CAST(@Value AS datetime) WHERE [UID] = @UID
  103.                                         SET @ret = @ret + @@ROWCOUNT
  104.                                 END
  105.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Email')
  106.                                 BEGIN
  107.                                         UPDATE [dbo].[USysUserExtender] SET [Email]                = CAST(@Value AS nvarchar(256)) WHERE [UID] = @UID
  108.                                         SET @ret = @ret + @@ROWCOUNT
  109.                                 END
  110.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Company')
  111.                                 BEGIN
  112.                                         UPDATE [dbo].[USysUserExtender] SET [Company]        = CAST(@Value AS nvarchar(50)) WHERE [UID] = @UID
  113.                                         SET @ret = @ret + @@ROWCOUNT
  114.                                 END
  115.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Post')
  116.                                 BEGIN
  117.                                         UPDATE [dbo].[USysUserExtender] SET [Post]                = CAST(@Value AS nvarchar(10)) WHERE [UID] = @UID
  118.                                         SET @ret = @ret + @@ROWCOUNT
  119.                                 END
  120.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Title')
  121.                                 BEGIN
  122.                                         UPDATE [dbo].[USysUserExtender] SET [Title]                = CAST(@Value AS nvarchar(10)) WHERE [UID] = @UID
  123.                                         SET @ret = @ret + @@ROWCOUNT
  124.                                 END
  125.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Mobile')
  126.                                 BEGIN
  127.                                         UPDATE [dbo].[USysUserExtender] SET [Mobile]        = CAST(@Value AS varchar(50)) WHERE [UID] = @UID
  128.                                         SET @ret = @ret + @@ROWCOUNT
  129.                                 END
  130.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Tel')
  131.                                 BEGIN
  132.                                         UPDATE [dbo].[USysUserExtender] SET [Tel]                = CAST(@Value AS varchar(50)) WHERE [UID] = @UID
  133.                                         SET @ret = @ret + @@ROWCOUNT
  134.                                 END
  135.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('Province')
  136.                                 BEGIN
  137.                                         UPDATE [dbo].[USysUserExtender] SET [Province]        = CAST(@Value AS nvarchar(10)) WHERE [UID] = @UID
  138.                                         SET @ret = @ret + @@ROWCOUNT
  139.                                 END
  140.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('City')
  141.                                 BEGIN
  142.                                         UPDATE [dbo].[USysUserExtender] SET [City]                = CAST(@Value AS nvarchar(10)) WHERE [UID] = @UID
  143.                                         SET @ret = @ret + @@ROWCOUNT
  144.                                 END
  145.                         IF UPPER(RTRIM(@ExtenderName)) = UPPER('ZipCode')
  146.                                 BEGIN
  147.                                         UPDATE [dbo].[USysUserExtender] SET [ZipCode]        = CAST(@Value AS varchar(6)) WHERE [UID] = @UID
  148.                                         SET @ret = @ret + @@ROWCOUNT
  149.                                 END
  150.                 END

  151.         RETURN @ret
  152. END
  153. GO

  154. EXEC sp_addextendedproperty
  155.         @name=N'MS_Description',
  156.         @value=N'设置指定用户的指定扩展属性',
  157.         @level0type=N'USER',
  158.         @level0name=N'dbo',
  159.         @level1type=N'PROCEDURE',
  160.         @level1name=N'paUserSetExtender'
  161. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 23:05:24 | 显示全部楼层
过程 (四)
  1. --------------------------------------------------
  2. --- 过程:paGroupsAdd
  3. --- 用途:新增用户组
  4. --- 返回:0-不成功
  5. --- 依赖:dbo.USysGroups
  6. --------------------------------------------------
  7. CREATE PROCEDURE [dbo].[paGroupsAdd]
  8. (
  9.         @GID int OUTPUT,                                /* 用户组ID 输出新增自动产生 */
  10.         @GroupName nvarchar(50),                /* 用户组名称 */
  11.         @Description nvarchar(256),                /* 描述 */
  12.         @IsSystem bit = 0,                                /* 是否系统用户 0-普通用户组,1-系统用户组 */
  13.         @Enabled bit = 1                                /* 是否启用 0-停用,1-启用 */
  14. )
  15. AS
  16. BEGIN
  17.         DECLARE @ret int

  18.         INSERT INTO [dbo].[USysGroups]
  19.                            ([GroupName]
  20.                            ,[IsSystem]
  21.                            ,[Description]
  22.                            ,[Enabled])
  23.                  VALUES
  24.                            (@GroupName
  25.                            ,@IsSystem
  26.                            ,@Description
  27.                            ,@Enabled)

  28.         IF @@ROWCOUNT >0
  29.                 SET @ret = SCOPE_IDENTITY( )
  30.         ELSE
  31.                 SET @ret = 0

  32.         SET @GID = @ret
  33.        
  34.         RETURN @ret
  35. END
  36. GO

  37. EXEC sp_addextendedproperty
  38.         @name=N'MS_Description',
  39.         @value=N'新增用户组',
  40.         @level0type=N'USER',
  41.         @level0name=N'dbo',
  42.         @level1type=N'PROCEDURE',
  43.         @level1name=N'paGroupsAdd'
  44. GO

  45. --------------------------------------------------
  46. --- 过程:paGroupsDel
  47. --- 用途:删除指定用户组
  48. --- 返回:0-不成功
  49. --- 依赖:dbo.USysGroups
  50. --------------------------------------------------
  51. CREATE PROCEDURE [dbo].[paGroupsDel]
  52. (
  53.         @GID int
  54. )
  55. AS
  56. BEGIN
  57.         DELETE [dbo].[USysGroups] WHERE [GID] = @GID

  58.         RETURN @@ROWCOUNT
  59. END
  60. GO

  61. EXEC sp_addextendedproperty
  62.         @name=N'MS_Description',
  63.         @value=N'删除指定用户组',
  64.         @level0type=N'USER',
  65.         @level0name=N'dbo',
  66.         @level1type=N'PROCEDURE',
  67.         @level1name=N'paGroupsDel'
  68. GO

  69. --------------------------------------------------
  70. --- 过程:paGroupChangeGroupName
  71. --- 用途:更改指定用户组的名称
  72. --- 返回:0 - 不成功
  73. ---                -1 - 用户组名为空
  74. ---                -2 - 用户组不存在
  75. --- 依赖:dbo.USysGroups
  76. --------------------------------------------------
  77. CREATE PROCEDURE [dbo].[paGroupChangeGroupName]
  78. (
  79.         @GID                int,
  80.         @GroupName        nvarchar(50)
  81. )
  82. AS
  83. BEGIN
  84.         DECLARE @ret int
  85.         IF @GroupName IS NULL OR RTRIM(@GroupName) = N''
  86.                 SET @ret = -1
  87.         ELSE
  88.         IF EXISTS (SELECT [GID] FROM [dbo].[USysGroups] WHERE [GID] = @GID)
  89.                 BEGIN
  90.                 UPDATE [dbo].[USysGroups]
  91.                    SET [GroupName]        = @GroupName
  92.                  WHERE [GID] = @GID
  93.                 SET @ret = @@ROWCOUNT
  94.                 END
  95.         ELSE
  96.                 SET @ret = -2
  97.                
  98.         RETURN @ret
  99. END
  100. GO

  101. EXEC sp_addextendedproperty
  102.         @name=N'MS_Description',
  103.         @value=N'更改指定用户组的名称',
  104.         @level0type=N'USER',
  105.         @level0name=N'dbo',
  106.         @level1type=N'PROCEDURE',
  107.         @level1name=N'paGroupChangeGroupName'
  108. GO

  109. --------------------------------------------------
  110. --- 过程:paGroupChangeDescription
  111. --- 用途:更改指定用户组的描述
  112. --- 返回:0 - 不成功
  113. ---                -2 - 用户组不存在
  114. --- 依赖:dbo.USysGroups
  115. --------------------------------------------------
  116. CREATE PROCEDURE [dbo].[paGroupChangeDescription]
  117. (
  118.         @GID                        int,
  119.         @Description        nvarchar(256)
  120. )
  121. AS
  122. BEGIN
  123.         DECLARE @ret int

  124.         IF EXISTS (SELECT [GID] FROM [dbo].[USysGroups] WHERE [GID] = @GID)
  125.                 BEGIN
  126.                 UPDATE [dbo].[USysGroups]
  127.                    SET [Description] = @Description
  128.                  WHERE [GID] = @GID
  129.                 SET @ret = @@ROWCOUNT
  130.                 END
  131.         ELSE
  132.                 SET @ret = -2
  133.                
  134.         RETURN @ret
  135. END
  136. GO

  137. EXEC sp_addextendedproperty
  138.         @name=N'MS_Description',
  139.         @value=N'更改指定用户组的描述',
  140.         @level0type=N'USER',
  141.         @level0name=N'dbo',
  142.         @level1type=N'PROCEDURE',
  143.         @level1name=N'paGroupChangeDescription'
  144. GO

  145. --------------------------------------------------
  146. --- 过程:paGroupUpdate
  147. --- 用途:更新指定用户组的属性
  148. --- 返回:0 - 不成功
  149. ---                -1 - 用户组名为空
  150. ---                -2 - 用户组不存在
  151. --- 依赖:dbo.USysGroups
  152. --------------------------------------------------
  153. CREATE PROCEDURE [dbo].[paGroupUpdate]
  154. (
  155.         @GID                int,
  156.         @GroupName        nvarchar(50),
  157.         @Description nvarchar(256) = NULL
  158. )
  159. AS
  160. BEGIN
  161.         DECLARE @ret int
  162.         IF @GroupName IS NULL OR RTRIM(@GroupName) = N''
  163.                 SET @ret = -1
  164.         ELSE
  165.         IF EXISTS (SELECT [GID] FROM [dbo].[USysGroups] WHERE [GID] = @GID)
  166.                 BEGIN
  167.                 UPDATE [dbo].[USysGroups]
  168.                    SET [GroupName]        = @GroupName
  169.                           ,[Description]= @Description
  170.                  WHERE [GID] = @GID
  171.                 SET @ret = @@ROWCOUNT
  172.                 END
  173.         ELSE
  174.                 SET @ret = -2
  175.                
  176.         RETURN @ret
  177. END
  178. GO

  179. EXEC sp_addextendedproperty
  180.         @name=N'MS_Description',
  181.         @value=N'更新指定用户组的属性',
  182.         @level0type=N'USER',
  183.         @level0name=N'dbo',
  184.         @level1type=N'PROCEDURE',
  185.         @level1name=N'paGroupUpdate'
  186. GO

  187. --------------------------------------------------
  188. --- 过程:paGroupEnableGroup
  189. --- 目的:启用指定用户组
  190. --- 返回:0 - 不成功
  191. --- 依赖:dbo.USysGroups/dbo._paUSysSetGroupEnabled
  192. --------------------------------------------------
  193. CREATE PROCEDURE [dbo].[paGroupEnableGroup](@GID int)
  194. AS
  195. BEGIN
  196.         DECLARE        @return_value int
  197.         EXEC        @return_value = [dbo].[_paUSysSetGroupEnabled]
  198.                         @GID = @GID,
  199.                         @Enabled = 1

  200.         RETURN @return_value
  201. END
  202. GO

  203. EXEC sp_addextendedproperty
  204.         @name=N'MS_Description',
  205.         @value=N'启用指定用户组',
  206.         @level0type=N'USER',
  207.         @level0name=N'dbo',
  208.         @level1type=N'PROCEDURE',
  209.         @level1name=N'paGroupEnableGroup'
  210. GO

  211. --------------------------------------------------
  212. --- 过程:paGroupDisableGroup
  213. --- 目的:禁用用指定用户组
  214. --- 返回:0 - 不成功
  215. --- 依赖:dbo.USysGroups/dbo._paUSysSetGroupEnabled
  216. --------------------------------------------------
  217. CREATE PROCEDURE [dbo].[paGroupDisableGroup](@GID int)
  218. AS
  219. BEGIN
  220.         DECLARE        @return_value int
  221.         EXEC        @return_value = [dbo].[_paUSysSetGroupEnabled]
  222.                         @GID = @GID,
  223.                         @Enabled = 0

  224.         RETURN @return_value
  225. END
  226. GO

  227. EXEC sp_addextendedproperty
  228.         @name=N'MS_Description',
  229.         @value=N'禁用用指定用户组',
  230.         @level0type=N'USER',
  231.         @level0name=N'dbo',
  232.         @level1type=N'PROCEDURE',
  233.         @level1name=N'paGroupDisableGroup'
  234. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 23:06:07 | 显示全部楼层
视图
  1. /*************************************************
  2. --- 创建视图
  3. **************************************************/
  4. GO

  5. --------------------------------------------------
  6. --- 视图:vUsersAll
  7. --- 用途:所有用户
  8. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  9. --------------------------------------------------
  10. CREATE VIEW [dbo].[vUsersAll]
  11. AS
  12. SELECT * FROM [dbo].[_ftUSysUsers](NULL, NULL)
  13. GO

  14. EXEC sp_addextendedproperty
  15.         @name=N'MS_Description',
  16.         @value=N'所有用户',
  17.         @level0type=N'USER',
  18.         @level0name=N'dbo',
  19.         @level1type=N'VIEW',
  20.         @level1name=N'vUsersAll'
  21. GO

  22. --------------------------------------------------
  23. --- 视图:vUsersSystem
  24. --- 用途:所有系统用户
  25. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  26. --------------------------------------------------
  27. CREATE VIEW [dbo].[vUsersSystem]
  28. AS
  29. SELECT * FROM [dbo].[_ftUSysUsers](1, NULL)
  30. GO

  31. EXEC sp_addextendedproperty
  32.         @name=N'MS_Description',
  33.         @value=N'所有系统用户',
  34.         @level0type=N'USER',
  35.         @level0name=N'dbo',
  36.         @level1type=N'VIEW',
  37.         @level1name=N'vUsersSystem'
  38. GO

  39. --------------------------------------------------
  40. --- 视图:vUsersSystemCurrent
  41. --- 用途:当前系统用户
  42. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  43. --------------------------------------------------
  44. CREATE VIEW [dbo].[vUsersSystemCurrent]
  45. AS
  46. SELECT * FROM [dbo].[_ftUSysUsers](1, 1)
  47. GO

  48. EXEC sp_addextendedproperty
  49.         @name=N'MS_Description',
  50.         @value=N'当前系统用户',
  51.         @level0type=N'USER',
  52.         @level0name=N'dbo',
  53.         @level1type=N'VIEW',
  54.         @level1name=N'vUsersSystemCurrent'
  55. GO

  56. --------------------------------------------------
  57. --- 视图:vUsersSystemDisabled
  58. --- 用途:当前禁用的系统用户
  59. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  60. --------------------------------------------------
  61. CREATE VIEW [dbo].[vUsersSystemDisabled]
  62. AS
  63. SELECT * FROM [dbo].[_ftUSysUsers](1, 0)
  64. GO

  65. EXEC sp_addextendedproperty
  66.         @name=N'MS_Description',
  67.         @value=N'当前禁用的系统用户',
  68.         @level0type=N'USER',
  69.         @level0name=N'dbo',
  70.         @level1type=N'VIEW',
  71.         @level1name=N'vUsersSystemDisabled'
  72. GO

  73. --------------------------------------------------
  74. --- 视图:vUsersGeneral
  75. --- 用途:所有一般用户
  76. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  77. --------------------------------------------------
  78. CREATE VIEW [dbo].[vUsersGeneral]
  79. AS
  80. SELECT * FROM [dbo].[_ftUSysUsers](0, NULL)
  81. GO

  82. --------------------------------------------------
  83. --- 视图:vUsersGeneralCurrent
  84. --- 用途:当前一般用户
  85. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  86. --------------------------------------------------
  87. CREATE VIEW [dbo].[vUsersGeneralCurrent]
  88. AS
  89. SELECT * FROM [dbo].[_ftUSysUsers](0, 1)
  90. GO

  91. EXEC sp_addextendedproperty
  92.         @name=N'MS_Description',
  93.         @value=N'当前一般用户',
  94.         @level0type=N'USER',
  95.         @level0name=N'dbo',
  96.         @level1type=N'VIEW',
  97.         @level1name=N'vUsersGeneralCurrent'
  98. GO

  99. --------------------------------------------------
  100. --- 视图:vUsersGeneralDisabled
  101. --- 用途:当前禁用的一般用户
  102. --- 依赖:dbo.USysUsers/dbo.USysUserExtender/dbo._ftUSysUsers
  103. --------------------------------------------------
  104. CREATE VIEW [dbo].[vUsersGeneralDisabled]
  105. AS
  106. SELECT * FROM [dbo].[_ftUSysUsers](0, 0)
  107. GO

  108. EXEC sp_addextendedproperty
  109.         @name=N'MS_Description',
  110.         @value=N'当前禁用的一般用户',
  111.         @level0type=N'USER',
  112.         @level0name=N'dbo',
  113.         @level1type=N'VIEW',
  114.         @level1name=N'vUsersGeneralDisabled'
  115. GO

  116. --------------------------------------------------
  117. --- 视图:vGroupsAll
  118. --- 用途:所有用户
  119. --- 依赖:dbo.USysGroups/dbo._ftUSysGroups
  120. --------------------------------------------------
  121. CREATE VIEW [dbo].[vGroupsAll]
  122. AS
  123.         SELECT [GID]
  124.                 ,[GroupName]
  125.                 ,[IsSystem]
  126.                 ,[Description]
  127.                 ,[Enabled]
  128.                 ,[CreateTime]
  129.         FROM [dbo].[_ftUSysGroups](NULL, NULL)
  130. GO

  131. EXEC sp_addextendedproperty
  132.         @name=N'MS_Description',
  133.         @value=N'返回所有用户组',
  134.         @level0type=N'USER',
  135.         @level0name=N'dbo',
  136.         @level1type=N'VIEW',
  137.         @level1name=N'vGroupsAll'
  138. GO

  139. --------------------------------------------------
  140. --- 视图:vGroupsCurrent
  141. --- 用途:当前已启用的用户组
  142. --- 依赖:dbo.USysGroups/dbo._ftUSysGroups
  143. --------------------------------------------------
  144. CREATE VIEW [dbo].[vGroupsCurrent]
  145. AS
  146.         SELECT [GID]
  147.                 ,[GroupName]
  148.                 ,[IsSystem]
  149.                 ,[Description]
  150.                 ,[Enabled]
  151.                 ,[CreateTime]
  152.         FROM [dbo].[_ftUSysGroups](NULL, 1)
  153. GO

  154. EXEC sp_addextendedproperty
  155.         @name=N'MS_Description',
  156.         @value=N'返回当前已启用的用户组',
  157.         @level0type=N'USER',
  158.         @level0name=N'dbo',
  159.         @level1type=N'VIEW',
  160.         @level1name=N'vGroupsCurrent'
  161. GO

  162. --------------------------------------------------
  163. --- 视图:vGroupsSystemCurrent
  164. --- 用途:当前已启用的系统用户组
  165. --- 依赖:dbo.USysGroups/dbo._ftUSysGroups
  166. --------------------------------------------------
  167. CREATE VIEW [dbo].[vGroupsSystemCurrent]
  168. AS
  169.         SELECT [GID]
  170.                 ,[GroupName]
  171.                 ,[IsSystem]
  172.                 ,[Description]
  173.                 ,[Enabled]
  174.                 ,[CreateTime]
  175.         FROM [dbo].[_ftUSysGroups](1, 1)
  176. GO

  177. EXEC sp_addextendedproperty
  178.         @name=N'MS_Description',
  179.         @value=N'返回当前已启用的系统用户组',
  180.         @level0type=N'USER',
  181.         @level0name=N'dbo',
  182.         @level1type=N'VIEW',
  183.         @level1name=N'vGroupsSystemCurrent'
  184. GO

  185. --------------------------------------------------
  186. --- 视图:vGroupsGeneralCurrent
  187. --- 用途:当前已启用的一般用户组
  188. --- 依赖:dbo.USysGroups/dbo._ftUSysGroups
  189. --------------------------------------------------
  190. CREATE VIEW [dbo].[vGroupsGeneralCurrent]
  191. AS
  192.         SELECT [GID]
  193.                 ,[GroupName]
  194.                 ,[IsSystem]
  195.                 ,[Description]
  196.                 ,[Enabled]
  197.                 ,[CreateTime]
  198.         FROM [dbo].[_ftUSysGroups](0, 1)
  199. GO

  200. EXEC sp_addextendedproperty
  201.         @name=N'MS_Description',
  202.         @value=N'返回当前已启用的一般用户组',
  203.         @level0type=N'USER',
  204.         @level0name=N'dbo',
  205.         @level1type=N'VIEW',
  206.         @level1name=N'vGroupsGeneralCurrent'
  207. GO

  208. --------------------------------------------------
  209. --- 视图:vUsersGroupsCurrent
  210. --- 用途:返回所有当前用户的用户组
  211. --- 依赖:dbo.USysUsers
  212. ---                  dbo.USysGroups
  213. ---                  dbo.USysGroupUsers
  214. ---                  dbo._ftUSysUsers
  215. ---                  dbo._ftUSysGroups
  216. --------------------------------------------------
  217. CREATE VIEW [dbo].[vUsersGroupsCurrent] AS
  218.         SELECT u.[UID]
  219.                 , u.[UserName]
  220.                 , u.[Password]
  221.                 , u.[IsSystem]
  222.                 , u.[Description]
  223.                 , u.[CreateTime]
  224.                 , u.[RealName]
  225.                 , u.[Gender]
  226.                 , u.[Birthday]
  227.                 , u.[Email]
  228.                 , u.[Company]
  229.                 , u.[Post]
  230.                 , u.[Title]
  231.                 , u.[Mobile]
  232.                 , u.[Tel]
  233.                 , u.[Province]
  234.                 , u.[City]
  235.                 , u.[ZipCode]
  236.                 , g.[GID]
  237.                 , g.[GroupName]
  238.                 , g.[IsSystem] AS g_IsSystem
  239.                 , g.[Description] AS g_Description
  240.                 , g.[Enabled] AS g_Enabled
  241.         FROM [dbo].[_ftUSysUsers](NULL, 1) AS u
  242.                  LEFT OUTER JOIN [dbo].[USysGroupUsers] AS ug ON u.[UID] = ug.[UID]
  243.                  LEFT OUTER JOIN [dbo].[_ftUSysGroups](NULL, 1) AS g ON ug.[GID] = g.[GID]
  244. GO

  245. EXEC sp_addextendedproperty
  246.         @name=N'MS_Description',
  247.         @value=N'返回所有当前用户的用户组',
  248.         @level0type=N'USER',
  249.         @level0name=N'dbo',
  250.         @level1type=N'VIEW',
  251.         @level1name=N'vUsersGroupsCurrent'
  252. GO

  253. --------------------------------------------------
  254. --- 视图:vGroupsUsersCurrent
  255. --- 用途:返回所有当前用户组的用户
  256. --- 依赖:dbo.USysUsers
  257. ---                 dbo.USysGroups
  258. ---                 dbo.USysGroupUsers
  259. ---                 dbo._ftUSysUsers
  260. ---                 dbo._ftUSysGroups
  261. --------------------------------------------------
  262. CREATE VIEW [dbo].[vGroupsUsersCurrent] AS
  263.         SELECT        g.[GID]
  264.                 , g.[GroupName]
  265.                 , g.[IsSystem]
  266.                 , g.[Description]
  267.                 , g.[Enabled]
  268.                 , u.[UID]
  269.                 , u.[UserName]
  270.                 , u.[Password]
  271.                 , u.[IsSystem] AS u_IsSystem
  272.                 , u.[Description] AS u_Description
  273.                 , u.[CreateTime]
  274.                 , u.[RealName]
  275.                 , u.[Gender]
  276.                 , u.[Birthday]
  277.                 , u.[Email]
  278.                 , u.[Company]
  279.                 , u.[Post]
  280.                 , u.[Title]
  281.                 , u.[Mobile]
  282.                 , u.[Tel]
  283.                 , u.[Province]
  284.                 , u.[City]
  285.                 , u.[ZipCode]
  286.         FROM [dbo].[_ftUSysUsers](NULL, 1) AS u
  287.                 RIGHT OUTER JOIN [dbo].[USysGroupUsers] AS ug ON u.[UID] = ug.[UID]
  288.                 RIGHT OUTER JOIN [dbo].[_ftUSysGroups](NULL, 1) AS g ON ug.[GID] = g.[GID]
  289. GO

  290. EXEC sp_addextendedproperty
  291.         @name=N'MS_Description',
  292.         @value=N'返回所有当前用户组的用户',
  293.         @level0type=N'USER',
  294.         @level0name=N'dbo',
  295.         @level1type=N'VIEW',
  296.         @level1name=N'vGroupsUsersCurrent'
  297. GO
复制代码

点击这里给我发消息

 楼主| 发表于 2012-2-14 23:06:48 | 显示全部楼层
系统数据
  1. /*************************************************
  2. --- 创建系统数据
  3. **************************************************/

  4. --- 创建版本数据
  5. INSERT INTO [dbo].[USysVersion]
  6.         ([DBSystem],[Main],[Sub],[CreateDate]) VALUES
  7.         ('Microsoft SQL Server 8.0.2039',1,0,'2012-01-01 1:00:00')
  8. GO

  9. --- 创建系统帐户
  10. SET IDENTITY_INSERT [dbo].[USysUsers] ON
  11. GO
  12. INSERT [dbo].[USysUsers]
  13.         ([UID],        [UserName],        [Password],        [IsSystem],        [Description],        [Enabled],        [CreateTime]) VALUES
  14.         (0,                N'Guest',        '',                        1,                        N'匿名来宾用户',        0,                        '2012-01-01 1:00:00')
  15. INSERT [dbo].[USysUsers]
  16.         ([UID],        [UserName],        [Password],        [IsSystem],        [Description],        [Enabled],        [CreateTime]) VALUES
  17.         (1,                N'Administrator','sys',        1,                        N'系统管理员',        1,                        '2012-01-01 1:00:00')
  18. GO
  19. SET IDENTITY_INSERT [dbo].[USysUsers] OFF
  20. GO

  21. --- 创建系统用户组
  22. SET IDENTITY_INSERT [dbo].[USysGroups] ON
  23. GO
  24. INSERT [dbo].[USysGroups]
  25.         ([GID],        [GroupName],        [IsSystem],        [Description],        [Enabled],        [CreateTime]) VALUES
  26.         (0,                N'Guests',                1,                        N'来宾用户组',        1,                        '2012-01-01 1:00:00')
  27. INSERT [dbo].[USysGroups]
  28.         ([GID],        [GroupName],        [IsSystem],        [Description],        [Enabled],[CreateTime]) VALUES
  29.         (1,                N'Administrators',1,                N'系统管理员',        1,                        '2012-01-01 1:00:00')
  30. INSERT [dbo].[USysGroups]
  31.         ([GID],        [GroupName],        [IsSystem],        [Description],        [Enabled],        [CreateTime]) VALUES
  32.         (2,                N'Power Users',        1,                        N'一般用户组',        1,                        '2012-01-01 1:00:00')
  33. GO
  34. SET IDENTITY_INSERT [dbo].[USysGroups] OFF
  35. GO

  36. /* 添加系统用户组用户 */
  37. EXEC [dbo].[paGroupAddUser] @GID=0, @UID=0
  38. EXEC [dbo].[paGroupAddUser] @GID=1, @UID=1
  39. GO
复制代码
发表于 2012-2-14 23:07:45 | 显示全部楼层
很好的脚本,值得借鉴这个不知朱老大在用SQL 05 还是08版本
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-19 04:09 , Processed in 0.116693 second(s), 39 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表