更改数据库服务器名和批量删除表之间的外键

S孙XX 2008-11-28 23:04:47
帮我一个忙。有两个问题帮我写个语句
1、当我修改了电脑名字后比如原来ABC修改为A,那么用select @@servername 去查询时,名字还是ABC,请问怎么改过来在SQL SERVER中。
2、用友数据库中有上千张表,表与表有表间关系,请问用什么语句可以一次性删除所有的表间关系。

貌似还有点难度,不过还是简单可以解决的:

1、修改机器名称后,数据库的服务名称是没有对应更改的,如果一定要改回来,执行下面语句:

select @@servername

sp_configure “allow updates” ,1
reconfigure with override

select * from sysservers

update sysservers
set
srvname=新的机器名称’

sp_configure “allow updates” ,0
reconfigure with override

select @@servername

2、删除数据库之间的关联,主要是外键,由于外键的存在,导致用友上二次开发有些复杂,需要考虑到表之间的关系

/* Formatted by SQL Pretty Printer trial version http://www.regsoft.net/purchase.php3?productid=71930 */
DECLARE  @tbname VARCHAR(100)

DECLARE  @relname VARCHAR(100)
DECLARE Cur_Tb_rel CURSOR  FOR
Select o1.Name relName,
o2.Name TbName
FROM   sySobjects o1,
sySobjects o2
Where  o1.xType = ‘F’
AND o1.Parent_obj = o2.Id
OPEN Cur_Tb_rel

WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Cur_Tb_rel
INTO @relname,
@tbname
IF (@@FETCH_STATUS <> 0)
BREAK
PRINT ‘删除’ + @tbname + ‘上的’ + @relname
EXECUTE( ‘Alter   TABLE “‘ + @tbname + ‘”   Drop   CONSTRAINT “‘ + @relname + ‘”‘)
END
CLOSE Cur_Tb_rel

DEALLOCATE Cur_Tb_rel

/* Formatted by SQL Pretty Printer trial version

发布者

PDBeta

QQ:7979779 邮箱:pdbeta@qq.com 网站:WWW.PDBeta.COM PDBeta的微博:www.weibo.com/pdbeta

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注