Sql server 在不丢失数据的情况下,将所有表和字段的所有空格更改为下划线
我正在学习SQLServer2008R2并创建了一个数据库,但命名约定有缺陷Sql server 在不丢失数据的情况下,将所有表和字段的所有空格更改为下划线,sql-server,stored-procedures,sql-server-2008-r2,sql-update,Sql Server,Stored Procedures,Sql Server 2008 R2,Sql Update,我正在学习SQLServer2008R2并创建了一个数据库,但命名约定有缺陷 如何在不丢失数据的情况下将所有表和字段的所有空格更改为下划线 它必须是存储过程还是有更好的替代方案 非常感谢您在创建“代码”时提供的任何帮助 在while循环中,运行以下代码: declare @oldtblname varchar(10) declare @newtblname varchar(10) select @oldtblname=name from sys.tables wh
非常感谢您在创建“代码”时提供的任何帮助 在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循环计数将等于名称中有空格的表的数量。这里是对@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
索引、触发器、约束等等。。。?应用程序代码?使用下划线有什么缺陷?用括号([和])包裹所有对象。使用下划线会使使用LIKE变得困难,因为它是一种通配符。感谢您的帮助@Chris H,为什么下划线会妨碍使用like?