我正在学习 SQL Server 2008 r2 并创建了一个数据库,但命名约定有缺陷。
- 如何在不丢失数据的情况下将所有表格和字段的所有空格更改为下划线。
- 它必须是存储过程还是有更好的选择?
非常感谢创建“代码”的任何帮助!
我正在学习 SQL Server 2008 r2 并创建了一个数据库,但命名约定有缺陷。
非常感谢创建“代码”的任何帮助!
这是@Sonam提供的准确答案的扩展。请记住,重命名后对表的任何引用都将被破坏。
Declare @OldTableName as sysname
Declare @NewTableName as sysname
Declare TableCursor Cursor Fast_Forward For
Select
name
From
sys.tables
Where
name Like '% %'
Order By
name
Open TableCursor
Fetch Next From
TableCursor
Into
@OldTableName
While @@FETCH_STATUS = 0
Begin
Set @NewTableName = Replace(@OldTableName, ' ', '_')
Print 'Renaming table:'
Print ' Old: ' + @OldTableName
Print ' New: ' + @NewTableName
Exec sp_rename @OldTableName, @NewTableName
Fetch Next From
TableCursor
Into
@OldTableName
End
Close TableCursor
Deallocate TableCursor
在 while 循环中,运行以下代码:
declare @oldtblname varchar(10)
declare @newtblname varchar(10)
select @oldtblname=name from sys.tables where name like '% %'
set @newtblname=replace(@oldtblname,' ','_')
exec sp_rename @oldtblname,@newtblname
while 循环计数将等于名称中包含空格的表的数量。