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