当前位置: 首页 > 面试题库 >

使用sp_rename重命名SQL表的好处是什么?

阳凌
2023-03-14
问题内容

我在sql server 2012中有一个sql表,需要重命名。我知道在其他数据库系统中执行此操作的方法如下:

ALTER TABLE table_name
  RENAME TO new_table_name;

但是,似乎SQL Server需要不同的语法。从SQL Management
Studio中,我在“设计视图”中重命名了该表,然后右键单击以生成“生成更改脚本”,它产生了以下内容:

BEGIN TRANSACTION
GO
EXECUTE sp_rename N'table_name', N'new_table_name', 'OBJECT' 
GO
ALTER TABLE new_table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

使用sp_rename是重命名的最佳实践吗?

另外,它还生成了另一行来设置lock_esclation = table。这是必需的吗?


问题答案:

我猜答案(有点讽刺意味)是使用sp_rename它的优势,因为它实际上在SQL
Server上是有效的语法,而前者仅在PostgreSQL(文档)上有效。

要查看-的有效选项,ALTER TABLE请参见MSDN。

这是一个使用示例Sp_rename

EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';

(文档上sp_rename



 类似资料:
  • 主要内容:语法,示例SQL 允许对表进行重命名。有时候我们为表使用了无意义的名称,因此需要更正。 语法 SQL 支持两种重命名表的方式: ALTER TABLE old_table_name  RENAME TO new_table_name;  RENAME old_table _name TO new_table_name; old_table_name 为旧的表名,new_table_name 为新的表名。 示

  • 问题内容: 我相信我理解Java Bean是什么:Java类包含无参数构造函数,可序列化,并使用getter和setter公开其字段。 Java Bean是否必须公开其 所有 字段才能成为Bean?如果没有,它甚至有揭露 任何 ? Java Bean可以包括带有参数的构造函数以及无参数的构造函数吗? 除了符合某种编码风格以外,Java Bean的目的是什么?似乎有很多关于“这个豆”或“那个豆”的讨

  • 问题内容: 假设我有一个名为myTable的表。返回该表所有字段名称的SQL命令是什么?如果答案是特定于数据库的,那么我现在需要SQL Server,但也有兴趣查看其他数据库系统的解决方案。 问题答案: MySQL 3和4(和5): 这是别名 SQL Server(从2000开始)和MySQL 5: 完成答案:就像下面的人所说的那样,在SQL Server中,您也可以使用存储过程

  • 问题内容: 我需要重命名数据库中所有表中的列。因此必须在所有表中将“ OldColumn”列重命名为“ NewColumn” 我可以使用此查询获取具有此列的表的列表: 但是,如何在所有表中重命名它却尽可能简单,而不必编写游标呢? 问题答案: 当然,您不需要为此使用光标。您可以使用sys.columns和sys.objects生成动态sql。然后简单地执行它。一旦您对动态sql感到满意,就可以随意取

  • 问题内容: 如果我想使用SQL在SQL数据库中简单地重命名一列(而不更改其类型或约束,仅更改其名称),该怎么做?还是不可能? 这适用于任何声称支持SQL的数据库,我只是在寻找一个特定于SQL的查询,而无论实际的数据库实现如何,该查询都将起作用。 问题答案: 在PostgreSQL(以及许多其他RDBMS)上,可以使用常规语句来做到这一点:

  • 问题内容: 我尝试阅读一些文章,但对这个主题不太清楚。 有人想向我解释以下几点: 为什么通过HTTP使用websocket 什么是全双工通信 延迟延迟交互是什么意思 问题答案: 为什么通过HTTP使用websocket? webSocket是客户端和服务器之间的连续连接。该连续连接允许以下操作: 数据可以随时从服务器发送到客户端,而客户端甚至不需要请求。这通常称为服务器推送,对于客户端需要在服务器