Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server-重命名表名的方法_Sql_Sql Server_Ssms - Fatal编程技术网

SQL Server-重命名表名的方法

SQL Server-重命名表名的方法,sql,sql-server,ssms,Sql,Sql Server,Ssms,我想在SQL Server中重命名一个表。我知道正确的语法应该是: sp_rename 'old table name','new table name'; 如果我这样写会有什么不同吗 EXEC sp_rename 'old table name','new table name'; 我试着在SQL Server上运行它,如果没有EXEC,它会用红色突出显示我的语法sp_rename,但不会抛出任何错误 有人能建议重命名表的正确方法或其他替代方法吗 注意:我知道更改表名会影响或可能破坏脚本和

我想在SQL Server中重命名一个表。我知道正确的语法应该是:

sp_rename 'old table name','new table name';
如果我这样写会有什么不同吗

EXEC sp_rename 'old table name','new table name';
我试着在SQL Server上运行它,如果没有
EXEC
,它会用红色突出显示我的语法
sp_rename
,但不会抛出任何错误

有人能建议重命名表的正确方法或其他替代方法吗


注意:我知道更改表名会影响或可能破坏脚本和存储过程,有什么方法可以防止这种情况发生吗?或者,只有当有另一个表依赖于它时,它才会中断?

您可以使用EXEC关键字或不使用EXEC关键字执行存储过程。因此,您的两种方法都是正确的,并且具有相同的效果

以下三种方法均有效,但最常用的是第一种

EXEC sp_rename 'old table name','new table name';

EXECUTE sp_rename 'old table name','new table name';

sp_rename 'old table name','new table name';

最简单的方法是右键单击表名,然后单击“重命名”。不过,使用proc的两种方法都是正确的


不过,我还是要注意使用此过程,尤其是在重命名存储过程时。据记录,sp_rename无法更新sys.procedures表,该表通常用于标识数据库中的这些对象

如果在同一查询窗口中有其他sql语句,则需要使用
exec
。您的第一条语句(不带exec)只有在它自己执行时才能工作。因此,如果我想重命名,比如说在一个SQL脚本中的40个表,我应该将exec添加到每40条语句中?是的。你需要确定吗?据Jaya说,他说这不是强制性的。你为什么不自己尝试一下,这样使用sp_rename“”会更安全?你可以按照自己的方式处理表格。但是,对于过程,您可能希望删除并创建以下内容:如果要在同一查询编辑器窗口中重命名几个表,是否仍需要包含EXEC?否,但每个重命名都应单独调用。执行官不是疯子