Thank you ! exec('exec xp_cmdshell ''copy d:\program files\microsoft sql server\mssql\data\'+@foreDbname+'.mdf d:\program files\microsoft sql server\mssql\data\'+@newDbname+'.mdf''')谁能解释一下xp_cmdshell ''  和@newDbname+'.mdf''' 中的那几个'是什么意思?

解决方案 »

  1.   

    单引号如果放在用引号包起来的字符串中,需将单引号用两个单引号代替。
    eg: Select 'abc''a''def'
    结果为
    abc'a'def
      

  2.   

    单引号如果放在用引号包起来的字符串中,需将单引号用两个单引号代替。
    eg: Select 'abc''a''def'
    结果为
    abc'a'def
      

  3.   

    exec('exec xp_cmdshell ''delete/format/……''') 这个扩展api好可怕哦! 呵呵
      

  4.   

    thank you again!create procedure proDbCopy
    @foreDbname VarChar(100),
    @newDbname VarChar(100)
    as
     exec('sp_detach_db '+@foreDbname)
     exec('exec master..xp_cmdshell ''copy d:\program files\microsoft sql server\mssql\data\'+@foreDbname+'.mdf d:\program files\microsoft sql server\mssql\data\'+@newDbname+'.mdf''')
     exec('create database '+@foreDbname+' on primary (filename = ''d:\program files\microsoft sql server\mssql\data\'+@foreDbname+'.mdf'') for attach')
     exec('create database '+@newDbname+' on primary (filename = ''d:\program files\microsoft sql server\mssql\data\'+@newDbname+'.mdf'') for attach')
    执行:proDbCopy 'gTry_2003','gTry_2003_a'
    出错提示:
    (所影响的行数为 2 行)
    服务器: 消息 5105,级别 16,状态 4,行 1
    设备激活错误。物理文件名 'd:\program files\microsoft sql server\mssql\data\gTry_2003_a.mdf' 可能有误。/**结果并未拷贝生成gTry_2003_a.mdf,为什么?*/
      

  5.   

    exec('exec xp_cmdshell ''fromat/delete/……''') 这个dll用处多多哦!慎用!呵呵
      

  6.   

    USE master?不太懂,能否详细解释,谢谢!