一个有意思的问题,(分不够可再加)
请教各位我有用户库500个能否通过系统存储过程或者别的方法实现自动分离所有用户库`和自动附加所有的用户库`如何行请问这段SQL如何写? 
------解决方案----------------------自动分离 
 declare @db varchar(10),@i int,@xh char(3) 
 set @i=1 
 while @i <=500 
 begin 
 set @xh=right(1000+@i,3) 
 set @db= 'ZW0 '+@xh 
 print @db 
 exec sp_detach_db @db 
 set @i=@i+1 
 end
------解决方案--------------------..........sp_detach_db    
 sp_detach_db 
 从服务器分离数据库,并可以选择在分离前在所有的表上运行 UPDATE STATISTICS。   
 语法 
 sp_detach_db [ @dbname = ]  'dbname ' 
     [ , [ @skipchecks = ]  'skipchecks ' ]   
 --------------------------------------------学习
------解决方案--------------------先确认数所有据库文件存放的磁盘位置有规律,数据库数据文件,日志文件也有规律才可以实践。 
 附加数据库的方法: 
 DECLARE @ForI int 
 DECLARE @dbnameX nvarchar(50)	  	--数据库名 
 DECLARE @filenameX1 nvarchar(100) 	--数据文件 
 DECLARE @filenameX2 nvarchar(100) 	--日志文件 
 DECLARE @strFormat nvarchar(20) 
 DEClARE @DataPath nvarchar(100)		--数据存放目录   
 BEGIN TRAN T1 
 SELECT @ForI=1,@DataPath=N 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\ ' 
 WHILE @ForI <=500 
 	BEGIN 
 		SELECT @strFormat=dbo.FORMAT_STR(CAST(@ForI as nvarchar(10)),4) 
 			,@dbnameX= 'ZW '+@strFormat 
 			,@filenameX1=@DataPath+ 'ZW '+@strFormat+ '.mdf ' 
 			,@filenameX2=@DataPath+ 'ZW '+@strFormat+ '_log.ldf ' 
 			,@ForI=@ForI+1 
 		/* 
 		EXEC sp_attach_db @dbname = @dbnameX,  --附加的过程 
 			   @filename1 = @filenameX1 
 			   @filename2 = @filenameX2 
 		*/ 
 		--分离数据要使用到 系统存储过程sp_detach_db, 
 		--但要判断当前是否是否在使用, 
 		--要是使用先断开连接,才能分离成功 
 		--SELECT  @strFormat,@dbnameX,@filenameX1,@filenameX2,@ForI --调试语句 
 	END 
 COMMIT TRAN T1     
 --====================== 
 --用到的一个自定义函数内容: 
 /*=================================================== 
    功能:格式化字符串 ,如输入01 自动生成 0000001  
    备注:当位数达到10以上,要另写算法,否则出错 
    设计:weiguohao 
    日期:2006-03-11 
   ===================================================*/ 
 CREATE FUNCTION FORMAT_STR 
 (@strX Nvarchar(20),@FormatLength INT) 
 RETURNS NVARCHAR(20) AS   
 BEGIN  
 DECLARE @Return NVARCHAR(20) 
 DECLARE @Length INT 
     SET @Length=LEN(@strX) 
     IF @Length> =@FormatLength 
 	SET @Return=@strX 
     ELSE 
         BEGIN 
 	-- 格式化,只要是调用到数学函数POWER 
 	SET @Return=CAST(RIGHT(POWER(10,@FormatLength),@FormatLength-@Length) AS NVARCHAR(20))+@strX 
         END 
 RETURN @Return 
 END