???请问如何把数据库中所有表的名称中的“.”替换为“_”???
当前得到一个数据库(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表?这是系统表啊!
[解决办法]
[解决办法]
- SQL code
select 'sp_rename ''' + name + ''', ''' + replace(name,'.','_') + '''; ' + chr(13) from sys.objects where type='U'
[解决办法]
[解决办法]
- 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