我正在学习SQL Server 2008 r2并创建了一个DB,但命名约定存在缺陷。
非常感谢任何有关创建“代码”的帮助!
答案 0 :(得分:1)
以下是@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
答案 1 :(得分:0)
在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循环计数将等于名称中包含空格的表的数量。