日期:2014-05-17  浏览次数:20582 次

mssql备份数据库问题
string cmdtxt2 = @"backup database l-xian to disk='" + path + ".bak'";
        SqlConnection Con = new SqlConnection(@"Server='WIN-A3CE67RFII8\SQLEXPRESS';database=longteng;Uid=sa;Pwd=111111");
        Con.Open();
        try
        {
            SqlCommand Com = new SqlCommand(cmdtxt2, Con);
            Com.ExecuteNonQuery();
            Response.Write("<scriptlanguage=javascript>alert('备份数据成功!');</script>");
        }
        catch (Exception ms)
        {
            Response.Write(ms.Message);
            Response.Write("<scriptlanguage=javascript>alert('备份数据失败!')</script>");
        }
        finally
        {
            Con.Close();
        } 

------解决方案--------------------
backup database [l-xian]
------解决方案--------------------
你的数据库名称是: l-xian

你直接在ssms中直接执行会报错吗:

backup database l-xian to disk='path.bak'


------解决方案--------------------
做了一个实验,发现,
在数据库名称中,不能包含-,要包含必须用方括号,括起来:


create database l-xian
go
/*
消息 102,级别 15,状态 1,第 3 行
'-' 附近有语法错误。
*/

--改成这样,就不报错了,因为在数据库名称中,不能包含-,要包含必须用方括号,括起来
create database [l-xian]
go
/*
命令已成功完成。
*/

backup database [l-xian]
to disk = 'c:\l-xian.bak'
/*
已为数据库 'l-xian',文件 'l-xian' (位于文件 1 上)处理了 176 页。
已为数据库 'l-xian',文件 'l-xian_log' (位于文件 1 上)处理了 2 页。
BACKUP DATABASE 成功处理了 178 页,花费 0.497 秒(2.794 MB/秒)。
*/