当前位置:首页 » 编程语言 » sql命名表名
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql命名表名

发布时间: 2022-10-24 23:32:56

sql表命名规则

e,t,d都是表别名,,

为了书写简化及清晰
例如t,d都是departments的表别名,但是使用在不同位置,因为很多关联,有时候也会关联同1个表,例如:
select *
from test t1 left join test t2 on t1.id=t2.id
这里的t1,t2也是这个意思

⑵ 怎样重命名sql server中的表

第1招(rename)、很简单,在ssms(sql server management studio)左侧树上,找到表,右键重命名(或者定位(鼠标或者上下左右键)到这张表按F2),输入表的新名字,回车。
还是截个图吧。

2
第2招(insert into select from )、通过写程序,创建一张新表,表名为你的表新名,比如这位小兄弟想把Ari命名为Ari20151030,则建一张表,表名为这个,字段描述等均与第一张表相同,为了达到这个效果,在表Ari上右键-->编写表脚本为-->Create到-->新查询编辑器窗口

3
第二招续1,修改脚本中的名字为新表的名字,运行之(鼠标点红色叹号按钮,或者直接按F5快捷键)

4
第二招续2,将原表中的数据插入新表中,然后删除原表中的数据,就可以了
INSERT INTO Ari20151030 SELECT * FROM dbo.Ari;TRUNCATE TABLE dbo.Ari;

5
第3招(Select into from ),简化第二招的操作,但是不会有主键什么的带进去,适合这种临时的日志表,没有主键的情况。
SELECT * INTO Aribakat20151029 FROM dbo.Ari;
truncate table Ari;

6
第四招(sp_rename),终极大招,适合在程序中调用(个人觉得程序员要掌握的方法,就是要熟悉各种数据库的系统函数和方法,并加以权衡运用到程序开发中,才是一个想偷懒,能够偷懒,老板还喜欢你偷懒的程序员)。
EXEC sp_rename 'Ari','Ari201510301106';

END
注意事项

rename方法适合于小白
insert into select from方法适合于各种数据库,不只是mssql server,但是在这个场景下不是最优
Select into from 丢掉了主键信息,不是最优,但是适合于备份临时的数据
sp_rename这个方法建议各位sql server dba和程序员们广泛使用

⑶ sql语句如何重命名表名和列名

一、更改数据库名

sp_renamedb 更改数据库的名称。

语法: sp_renamedb [ @dbname = ] ' old_name ' , [ @newname = ] ' new_name '
参数: [ @dbname = ] ' old_name ' 是数据库的当前名称。old_name 为 sysname 类型,无默认值。
[ @newname = ] ' new_name ' 是数据库的新名称。 new_name 必须遵循标识符规则。new_name 为 sysname 类型,无默认值。
返回代码值: 0 (成功)或非零数字(失败)
权限: 只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行 sp_renamedb。

示例: 下例将数据库 accounting 改名为 financial。
EXEC sp_renamedb ' accounting ' , ' financial '

二、更改表名或列名

sp_rename [ @objname = ] ' object_name ' ,
[ @newname = ] ' new_name '
[ , [ @objtype = ] ' object_type ' ]

A. 重命名表:
下例将表 customers 重命名为 custs。
EXEC sp_rename ' customers ' , ' custs '

B. 重命名列:
下例将表 customers 中的列 contact title 重命名为 title。
EXEC sp_rename ' customers.[contact title] ' , ' title ' , ' COLUMN '

⑷ SQL语句 重命名表

Sp_存储过程的名称 这一种命名规范而已 表示系统存储过程 如果是扩展存储过程的话则是以 xp_存储过程名称

存储过程可以定义为:预编译在执行计划中的一系列标准Sql语句的集合

Exec 只是用来调用存储过程而已(可以省略Exec)

⑸ 第五章 SQL定义表(一)

可以通过定义表(使用 CREATE TABLE )或通过定义投影到表的持久类来创建表:

由于以下原因,这两个名字之间的对应关系可能不相同:

表、视图或存储过程名称可以是限定的( schema.name ),也可以是限定的( name )。

模式名遵循标识符约定,需要特别注意非字母数字字符的使用。
模式名不应该指定为带分隔符的标识符。
尝试指定“USER”或任何其他SQL保留字作为模式名会导致 SQLCODE -312 错误。
INFORMATION_SCHEMA 模式名和相应的信息。
模式包名在所有命名空间中保留。
用户不应该在这个模式/包中创建表/类。

当执行一个创建操作(比如 create TABLE ),指定一个还不存在的模式时,InterSystems IRIS将创建新的模式。
InterSystems IRIS使用模式名生成相应的包名。
由于模式及其对应包的命名约定不同,用户应该注意非字母数字字符的名称转换注意事项。
这些名称转换的注意事项与表不同:

INFORMATION_SCHEMA 模式名和相应的信息。
模式包名在所有命名空间中保留。
用户不应该在这个模式/包中创建表/类

在所有名称空间中保留 IRIS_Shard 模式名。
用户不应在此模式中创建表、视图或过程。
存储在 IRIS_Shard 模式中的项不会通过编目查询或 INFORMATION_SCHEMA 查询显示。

初始设置是对所有名称空间(系统范围)使用相同的默认模式名。
可以为所有命名空间设置相同的默认模式名,也可以为当前命名空间设置默认模式名。

如果创建了一个具有非限定名称的表或其他项,InterSystems IRIS将为其分配默认模式名和相应的持久类包名。
如果一个命名的或默认的模式不存在,InterSystems IRIS将创建模式(和包),并将创建的项分配给该模式。
如果删除模式中的最后一项,InterSystems IRIS将删除该模式(和包)。
下面的模式名解析描述适用于表名、视图名和存储过程名。

系统范围的初始默认模式名是 SQLUser 。
对应的持久类包名是 User 。
因此,非限定表名 Employee 或限定表名 SQLUser 。
Employee 将生成类 User.Employee 。

因为 USER 是一个保留字,尝试用 USER 的模式名(或任何SQL保留字)指定限定名会导致 SQLCODE -1 错误。

要返回当前默认模式名,请调用 $SYSTEM.SQL.DefaultSchema() 方法:

或者使用以下预处理器宏:

可以使用以下任意一种方式更改默认模式名:

注意:当更改默认的SQL模式名称时,系统将自动清除系统上所有名称空间中的所有缓存查询。
通过更改默认模式名称,可以更改所有包含非限定表、视图或存储过程名称的查询的含义。
强烈建议在安装InterSystems IRIS时建立默认的SQL模式名,以后不要修改。

模式名用于生成相应的类包名。
因为这些名称有不同的命名约定,所以它们可能不相同。

可以通过将其设置为系统范围的默认模式来创建与SQL保留字同名的模式,但是不建议这样做。
名为 User 的默认模式根据类命名唯一性约定,生成相应的类包名称 User0 。

如果指定 _CURRENT_USER/name 作为默认模式名,其中name是选择的任意字符串,那么InterSystems IRIS将当前登录进程的用户名分配为默认模式名。
如果进程没有登录,则name将用作默认的模式名。
例如,如果进程没有登录, _CURRENT_USER/HMO 使用HMO作为默认模式名。

在 $SYSTEM.SQL.SetDefaultSchema() 中,指定 "_CURRENT_USER" 作为带引号的字符串。

访问一个现有的表(或视图,或存储过程)进行DML操作时,将从模式搜索路径中提供一个非限定的名称。
按照指定的顺序搜索模式,并返回第一个匹配项。
如果在搜索路径中没有找到匹配的模式,或者没有搜索路径,则使用默认的模式名。
(注意, #Import 宏指令使用了不同的搜索策略,不会“失败”到默认的模式名。)

如果非限定名与模式搜索路径中指定的任何模式或默认模式名不匹配,则会发出 SQLCODE -30 错误,例如: SQLCODE: -30 消息: Table 'PEOPLE' not found in schemas: CUSTOMERS,EMPLOYEES,SQLUSER 。

当创建一个基于odbc的查询以通过Mac上的Microsoft query从Microsoft Excel运行时,如果从可用的表列表中选择一个表,则生成的查询不包括该表的模式(相当于类的包)。
例如,如果选择从示例模式返回 Person 表的所有行,则生成的查询为:

因为InterSystems IRIS将不限定的表名解释为 SQLUser 模式中的表名,所以该语句要么失败,要么从错误的表返回数据。
要纠正这一点,编辑查询(在SQL View选项卡上),显式引用所需的模式。
然后查询应该是:

INFORMATION.SCHEMA 。
SCHEMATA persistent 类列出当前名称空间中的所有模式。

下面的示例返回当前命名空间中的所有非系统模式名:

Management Portal SQL界面的左侧允许查看模式(或匹配筛选器模式的多个模式)的内容。

每个表在其模式中都有一个唯一的名称。
一个表有一个SQL表名和一个对应的持久化类名;
这些名称在允许的字符、区分大小写和最大长度方面有所不同。
如果使用SQL CREATE TABLE 命令定义,则指定遵循标识符约定的SQL表名;
系统生成一个对应的持久化类名。
如果定义为持久类定义,则必须指定只包含字母和数字字符的名称;
这个名称既用作区分大小写的持久类名,也用作(默认情况下)对应的不区分大小写的SQL表名。
可选的 SqlTableName class 关键字允许用户指定不同的SQL表名。

当使用 CREATE TABLE 命令创建表时,InterSystems IRIS使用表名生成相应的持久化类名。
由于表及其对应类的命名约定不同,用户应该注意非字母数字字符的名称转换:

同一个模式中的视图和表不能具有相同的名称。
尝试这样做会导致 SQLCODE -201 错误。

可以使用 $SYSTEM.SQL.TableExists() 方法确定一个表名是否已经存在。
可以使用 $SYSTEM.SQL.ViewExists() 方法确定视图名是否已经存在。
这些方法还返回与表或视图名称对应的类名。
管理门户SQL interface Catalog Details表信息选项显示与所选SQL表名称对应的类名。

试图指定 “USER” 或任何其他SQL保留字作为表名或模式名会导致 SQLCODE -312 错误。
要指定SQL保留字作为表名或模式名,可以指定名称作为带分隔符的标识符。
如果使用带分隔符的标识符指定包含非字母数字字符的表或模式名,InterSystems IRIS将在生成相应的类或包名时删除这些非字母数字字符。

适用以下表名长度限制:

在SQL中,每条记录都由一个唯一的整数值标识,这个整数值称为 RowID 。
在InterSystems SQL中,不需要指定 RowID 字段。
当创建表并指定所需的数据字段时,会自动创建RowID字段。
这个 RowID 在内部使用,但没有映射到类属性。
默认情况下,只有当持久化类被投影到SQL表时,它的存在才可见。
在这个投影表中,将出现一个额外的 RowID 字段。
默认情况下,这个字段被命名为 “ID” ,并分配给第1列。

默认情况下,当在表中填充数据时,InterSystems IRIS将从1开始向该字段分配连续的正整数。 RowID 数据类型为 BIGINT(%Library.BigInt) 。为 RowID 生成的值具有以下约束:每个值都是唯一的。不允许使用 NULL 值。排序规则是精确的。 默认情况下,值不可修改。

默认情况下,InterSystems IRIS将此字段命名为 “ ID” 。但是,此字段名称不是保留的。每次编译表时都会重新建立 RowID 字段名。如果用户定义了一个名为 “ ID” 的字段,则在编译表时,InterSystems IRIS会将 RowID 命名为 “ ID1” 。例如,如果用户随后使用 ALTER TABLE 定义了一个名为 “ ID1” 的字段,则表编译会将 RowID 重命名为 “ ID2” ,依此类推。在持久性类定义中,可以使用 SqlRowIdName 类关键字直接为此类投影到的表指定 RowID 字段名。由于这些原因,应避免按名称引用 RowID 字段。

InterSystems SQL提供了 %ID 伪列名称(别名),无论分配给 RowID 的字段名称如何,该伪列名称始终返回 RowID 值。 (InterSystems TSQL提供了 $IDENTITY 伪列名称,其作用相同。)

ALTER TABLE 无法修改或删除 RowID 字段定义。

将记录插入表中后,InterSystems IRIS将为每个记录分配一个整数ID值。 RowID 值始终递增。它们不被重用。因此,如果已插入和删除记录,则 RowID 值将按升序排列,但可能不连续。

可以通过设置 SetDDLUseSequence() 方法,将InterSystems IRIS配置为使用 $INCREMENT 执行 ID 分配。若要确定当前设置,请调用 $ SYSTEM.SQL.CurrentSettings() 方法。

在持久性类定义中, IdLocation 存储关键字global(例如,对于持久性类 Sample.Person:<IdLocation> ^ Sample.PersonD </ IdLocation> )包含RowID计数器的最高分配值。 (这是分配给记录的最高整数,而不是分配给进程的最高整数。)请注意,此RowID计数器值可能不再与现有记录相对应。要确定是否存在具有特定RowID值的记录,请调用表的 %ExistsId() 方法。

通过 TRUNCATE TABLE 命令重置 RowID 计数器。即使使用 DELETE 命令删除表中的所有行,也不会通过 DELETE 命令将其重置。如果没有数据插入表中,或者已使用 TRUNCATE TABLE 删除所有表数据,则 IdLocation 存储关键字全局值未定义。

默认情况下, RowID 值不可用户修改。尝试修改 RowID 值会产生 SQLCODE -107 错误。覆盖此默认值以允许修改 RowID 值可能会导致严重的后果,只有在非常特殊的情况下并应格外谨慎。 Config.SQL.AllowRowIDUpdate 属性允许 RowID 值是用户可修改的。

通过定义一个用于投影表的持久类,可以定义 RowID 以具有字段或字段组合中的值。为此,请使用 IdKey index 关键字指定一个索引。例如,一个表可以具有一个 RowID ,其 RowId 通过在 PatientName [IdKey] 上指定索引定义 IdxId 来与 PatientName 字段的值相同;或者可以通过指定索引定义 IdxId 来将 PatientName 和 SSN 字段的组合值在 (PatientName,SSN)[IdKey]; 上。

当 RowID 基于多个字段时, RowID 值是由 || 连接的每个组成字段的值。操作员。例如, Ross,Betsy || 123-45-6789 。 InterSystems IRIS尝试确定基于多个字段的 RowID 的最大长度。如果无法确定最大长度,则 RowID 长度默认为512。

用作外键引用的 RowID 必须是公共的。

默认情况下,不能将具有公共 RowID 的表用作源表或目标表,以使用 INSERT INTO Sample.DupTable SELECT * FROM Sample.SrcTable 将数据复制到重复表中。

可以使用Management Portal SQL界面“目录详细信息字段”列出“隐藏”列来显示 RowID 是否被隐藏。

可以使用以下程序返回指定字段(在此示例中为 ID )是否被隐藏:

⑹ SQL如何重命名表名

exec
sp_rename
'原表名','新表名',exec是执行存储过程的命令,可以省略,sp_rename是系统自带的存储过程可以用了来重命名表名、列名。。。

⑺ 怎样重命名sql server中的表

第1招(rename)、很简单,在ssms(sql server management studio)左侧树上,找到表,右键重命名(或者定位(鼠标或者上下左右键)到这张表按F2),输入表的新名字,回车。
还是截个图吧。
步骤阅读
2
第2招(insert into select from )、通过写程序,创建一张新表,表名为你的表新名,比如这位小兄弟想把Ari命名为Ari20151030,则建一张表,表名为这个,字段描述等均与第一张表相同,为了达到这个效果,在表Ari上右键-->编写表脚本为-->Create到-->新查询编辑器窗口
步骤阅读
3
第二招续1,修改脚本中的名字为新表的名字,运行之(鼠标点红色叹号按钮,或者直接按F5快捷键)
步骤阅读
4
第二招续2,将原表中的数据插入新表中,然后删除原表中的数据,就可以了
INSERT INTO Ari20151030 SELECT * FROM dbo.Ari;TRUNCATE TABLE dbo.Ari;
步骤阅读
5
第3招(Select into from ),简化第二招的操作,但是不会有主键什么的带进去,适合这种临时的日志表,没有主键的情况。
SELECT * INTO Aribakat20151029 FROM dbo.Ari;
truncate table Ari;
步骤阅读
6
第四招(sp_rename),终极大招,适合在程序中调用(个人觉得程序员要掌握的方法,就是要熟悉各种数据库的系统函数和方法,并加以权衡运用到程序开发中,才是一个想偷懒,能够偷懒,老板还喜欢你偷懒的程序员)。
EXEC sp_rename 'Ari','Ari201510301106';

⑻ 如何给表重命名 SQL

在sql server中:
在企业管理器中找到要改名的表,右键,重命名.

在ORACLE中:
alter table 老表名 rename to 新表名

⑼ SQL语句 重命名表

EXEC是调用或者执行的意思, SP_RENAME是SQL Server 2005数据库中内置的一个存储过程,他的功能就是重命名。 所谓存储过程就是预编译好的一段可执行的,有着特定功能的一段SQL语句的集合。 就像平时生活中,单个的一句话就是一句话,但是多句有联系的话放在一起就是一个文章了。 select * from 表,就是一个单个的SQL语句,但是多个有联系的SQL语句通过一定的语法放在一起,就是一个存储过程了。这样说,你可以理解了吗?