declare @sqldbname varchar(200) declare @sql varchar(1000) set @sqldbname = 'dbname' set @sql = ' use '+@sqldbname+' declare @logfile varchar(200) declare @datafile varchar(200) select @logfile = ''del ''+[filename] from sysfiles where fileid = 2 select @datafile = [filename] from sysfiles where fileid = 1 --分离 USE master EXEC sp_detach_db @dbname = '''+@sqldbname+''' --删除日志文件 exec master.dbo.xp_cmdshell @logfile --附加 EXEC sp_attach_single_file_db @dbname = '''+@sqldbname+''', @physname = @datafile' print @sql exec(@sql)