Sql Server之数据库规范——1、自动化规范命名

一、废话:

随着数据库的规模越来越大,数据库的表也有成百上千,如果需要对数据库表名及字段名做操作,单个还好,直接一条语句搞定了,但如果要对整个库的所有表和字段名做操作,那就显得有点麻烦了。因此,我们需要利用sql语句做批量表名字段名修改操作。

二、了解部分系统表:

1、获取所有数据库名:

SELECT NAME
FROM   MASTER..SysDatabases

2、获取所有用户表名:

SELECT NAME
FROM   sysobjects
WHERE  TYPE = ‘U‘

3、获取所有字段名:

SELECT NAME
FROM   SysColumns
WHERE  id = OBJECT_ID(‘TableName‘)

三、用游标实现修改所有表名和字段名:

DECLARE @tablename VARCHAR(50)
DECLARE @columnname VARCHAR(50)
DECLARE cur_table CURSOR
FOR
    SELECT NAME
    FROM   sysobjects
    WHERE  TYPE = ‘U‘
           AND NAME <> ‘sysdiagrams‘

OPEN cur_table  FETCH NEXT FROM cur_table INTO @tablename
WHILE @@fetch_status = 0
BEGIN
    -----------------------------------------
    DECLARE cur_column CURSOR
    FOR
        SELECT NAME
        FROM   syscolumns
        WHERE  id = OBJECT_ID(@tablename)

    OPEN cur_column FETCH NEXT FROM cur_column INTO @columnname
    WHILE @@fetch_status = 0
    BEGIN
        DECLARE @columnnamefirstchar     CHAR(1),
                @tablenamefirstchar      CHAR(1),
                @ch                      VARCHAR(50),
                @ch1                     VARCHAR(50),
                @uppertablename          VARCHAR(50)

        SET @columnnamefirstchar = SUBSTRING(@columnname, 1, 1)
        SET @tablenamefirstchar = SUBSTRING(@tablename, 1, 1)
        IF ASCII(@columnnamefirstchar) BETWEEN ASCII(‘A‘) AND ASCII(‘Z‘)
        BEGIN
            SET @ch = @tablename + ‘.‘ + @columnname
            SET @ch1 = LOWER(@columnnamefirstchar) + SUBSTRING(@columnname, 2, LEN(@columnname) -1)
            EXEC sp_rename @ch,
                 @ch1,
                 ‘column‘
        END

        IF ASCII(@tablenamefirstchar) BETWEEN ASCII(‘a‘) AND ASCII(‘z‘)
        BEGIN
            SET @uppertablename = UPPER(@tablenamefirstchar) + SUBSTRING(@tablename, 2, LEN(@tablename) -1)
            EXEC sp_rename @tablename,
                 @uppertablename
        END

        FETCH NEXT FROM cur_column INTO @columnname
    END CLOSE cur_column DEALLOCATE cur_column
    -----------------------------------------
    FETCH NEXT FROM cur_table INTO @tablename
END CLOSE cur_table DEALLOCATE cur_table

执行后整个数据库的表名都会变成首字母大写,字段名首字母都会变成小写。

时间: 2024-10-20 17:46:55

Sql Server之数据库规范——1、自动化规范命名的相关文章

Sql Server 2012数据库的安装【自己一点一点敲的】

Sql Server 2012数据库的安装 1.到微软官网上下载 下载链接为:https://www.microsoft.com/zh-cn/download/details.aspx?id=29066 点击下载-->点击文件名(全选)-->点击Next,开始下载. 2.下载完成后,装载以.iso为扩展名的光盘镜像文件 右击文件-->点击装载-->出来下图所示页面 点击setup-->打开安装中心(如果是win7以上的版本,右击-->以管理员身份运行)-->出现如

sql server 2012数据库镜像

sql server 2012数据库镜像 以下通过域帐户来配置数据库镜像: 一.环境准备 1.准备计算机 AD02为域控制器/DNS服务器(sz1card1.com),IP:192.168.2.218/24,AD02安装成为域控制器.DNS服务(这里不做演示) W67为主体服务器,IP:192.168.2.67/24,安装SQL SERVER 2012 企业核心版(这里不做演示) W65为镜像服务器,IP:192.168.2.65/24,安装SQL SERVER 2012 企业核心版(这里不做演

通过SQL Server 2008数据库复制实现数据库同步备份

SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制.数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜

初学SQL Server 2008数据库_1

前言(也就是一些废话) 在学SQL Server数据库之前,我们老师刚刚讲完了数据库原理这门课,说是讲完,其实只是讲到了第七章的一部分,后面的都没有讲.我们用的教材是施伯乐的那本数据库系统教程第三版,我学的还算是凑合吧,上上机课时,老师用的是Access数据库,所以我对Access也会一点:还有就是去年曾经看过一点点Oracle数据库:学Java时也曾简单的用过MySQL数据库. 平时所说的数据库,是指该数据库相应的管理软件. 曾听人说过,数据库并不算难,难的是如何使用数据库管理软件,的确,如果

SQL Server附加数据库出现错误5123的正确解决方法

SQL Server附加数据库出现错误5123的正确解决方法 因为自己有一本基于SQL Server 2005的数据库教程,里边使用的示例数据库是AdventureWorks for SQL Server 2005,而我的机子上装的是SQL Server 2008,示例数据库是AdventureWorks for SQL Server 2008.起初我以为示例数据库AdventureWorks for SQL Server 2005 与AdventureWorks for SQL Server

列出 sql server某个数据库的角色 及 表名

-- USE YOUR DB NAME select QUOTENAME(SCHEMA_NAME(SCHEMA_ID)) + '.' + QUOTENAME(NAME) FROM SYS.TABLES select '[' + schema_name(schema_id) + '].[' + name + ']' from sys.tables SELECT '[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']' FROM INFORMATION_SCHEMA

MS SQL Server分析数据库的I/O性能

系统有的时候响应会明显很慢,有的时候可以是因为访问人数增加导致,有的时候可能因为数据库的磁盘I/O访问次数频繁导致.MS SQL Server提供了一些动态管理视图和函数供我们分析磁盘I/O性能. 1.sys.dm_io_virtual_file_stats SELECT DB_NAME(vfs.database_id) AS database_name , vfs.database_id , vfs.FILE_ID , io_stall_read_ms / NULLIF(num_of_read

sql server 2005 数据库迁移问题总结——"错误15023:当前数据库中已存在用户或角色"

在数据库迁移过程中,如何设置不好用户与登录,会造成"错误15023:当前数据库中已存在用户或角色". 现在整理下思路: 1.在原数据库进行数据库备份 ***.bak 文件: 2.在新建数据库,建立与原数据库相同的登录名: 3.在新数据库上恢复备份的数据库文件 ***.bak 文件:选择覆盖原数据库文件: 4.将数据库恢复到其他服务器时,需要处理"孤立用户"的问题.具体解决办法如下: 用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户.这种情况被称

SQL Server 跨数据库查询

不同服务器数据库之间的数据操作 --创建链接服务器 exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时

SQLServer2008修改sa密码的方法与SQL server 2008数据库的备份与还原

sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 一.SQLServer2008修改sa密码的方法 1. 先用Window身份验证方式登陆进去,选择数据库实例,右键选择属性--安全性:把服务器身份验证选项从"Window身份验