读书人

?请教怎么把数据库中所有表的名称中的

发布时间: 2012-08-15 16:57:17 作者: rapoo

???请问如何把数据库中所有表的名称中的“.”替换为“_”???
当前得到一个数据库(CW)的数据,其表名称为:
1001.凭证表
1001.科目表
1001.余额表
........
1002.凭证表
1002.科目表
1002.余额表
........
1003.凭证表
1003.科目表
1003.余额表
..............
----
现在想把所有的表导出,但由于DTS自动把.前的前缀都去掉,导致数据表重复而无法导出。

因此想把库中所有表名称中的“.”替换为“_”,请问如何实现?????

[解决办法]

SQL code
replace
[解决办法]
replace(col,'.','_')
[解决办法]
SQL code
select replace('1001.凭证表','.','_')                                                                                                                                                                                                                                                                 ---------------------------------------------------------------------------------------------------------------- 1001_凭证表(所影响的行数为 1 行)
[解决办法]
REPLACE
第一字串算式中出的第二定字串算式取代第三算式。


REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )


'string_expression1'

指定要搜的字串算式。 string_expression1 可字元或二位料。

'string_expression2'

指定找的字串算式。 string_expression2 可字元或二位料。

'string_expression3'

指定取代此字串算式。 string_expression3 可字元或二位料。

回型
若 string_expression (1、 2,或 3) 是已支援之字元料型之一,回字元料。若 string_expression (1、 2,或 3) 是已支援之 binary 料型之一,回二位料。


此例 abcdefghi 中的 cde 字串取代 xxx。

SELECT REPLACE('abcdefghicde','cde','xxx')
GO

以下果集:

------------
abxxxfghixxx
(1 row(s) affected)


[解决办法]
SQL code
--sa登录use 数据库(CW)select replace(name,'.','-') from sys.objects where type='U'
[解决办法]
SQL code
sp_rename   '旧表名','新表名'
[解决办法]
你怎么操作sysobjects表?这是系统表啊!
[解决办法]
探讨
用语句:
use 数据库(CW)
select replace(name,'.','-')
from sys.objects
where type='U'
执行后,我检查了一下,还是没变。

我重新检查了一下数据库,发现1001、1002......都是用户名称,请问如何解决啊?

[解决办法]
SQL code
select 'sp_rename ''' + name + ''', ''' + replace(name,'.','_') + '''; ' + chr(13) from sys.objects where type='U'
[解决办法]
探讨
引用:
用语句:
use 数据库(CW)
select replace(name,'.','-')
from sys.objects
where type='U'
执行后,我检查了一下,还是没变。

我重新检查了一下数据库,发现1001、1002......都是用户名称,请问如何解决啊?

昏迷。

[解决办法]
SQL code
select 'exec sp_rename ''' + s.name + '.' + t.name + ''', ''' + s.name + '_' + t.name + ''''from sys.tables t, sys.schemas s where t.schema_id = s.schema_id 

读书人网 >SQL Server

热点推荐