意外地以数字开头命名我的数据库中的所有表

Man*_*rin 9 sql-server

我不小心将我的 sql 数据库中的所有表(100+)命名为前缀 2019_

直到现在才意识到这不是一个好主意(2年后才回到 SQL)

有什么方法可以将其批量交换为后缀甚至删除所有表?我什至无法打开它们。真的不想手动遍历它们。

如果这是一个愚蠢的问题,可能会在谷歌上搜索错误的术语

谢谢!

Bra*_*adC 19

在您的情况下,我可能会使用类似这样的脚本来sp_rename为我生成所有命令:

SELECT SCHEMA_NAME(schema_id) as schemaname, name as tablename, 
cmd = 'EXEC sp_rename ''' + SCHEMA_NAME(schema_id) + '.' + name + ''', ''' 
  + SUBSTRING(name, 6, 99) + ''';'
FROM sys.tables
WHERE type = 'U'
AND is_ms_shipped = 0
AND name LIKE '2019[_]%'
Run Code Online (Sandbox Code Playgroud)

这会从sys.tables系统表中获取名称,并查找名称以 开头的所有用户创建的表2019_。它会生成一个sp_rename命令列表,您可以将其复制到新的 SSMS 窗口中并仔细检查以确保它们在运行前看起来正确无误。

请注意,这将破坏引用这些表的任何其他对象(视图、触发器、存储过程等),因此我希望该数据库处于开发初期。