drop proc crtdb
create proc crtdb
@dbname char(20),
@dbfile char(100),
@dblog char(20),
@dblogfile char(100)as
exec('
create database '+@dbname+'
on 
( name = '+@dbname+',
  filename = '''+@dbfile+''')
log on
( name = '+@dblog+',
 filename = '''+@dblogfile+''')
')
go
exec crtdb 
@dbname = 'xymis3',
@dbfile = 'd:\xymisdata\xymis3.mdf',
@dblog = 'xymis2log',
@dblogfile = 'd:\xymisdata\xymis3log.ldf'

解决方案 »

  1.   

    --注意文件路径,是''所以要加两个''试试这样.还有建库的目录要存在.
    ALTER proc crtdb
    @dbname char(20),
    @dbfile char(100),
    @dblog char(20),
    @dblogfile char(100)
    as
    exec('
    use master
    create database '+@dbname+'
    on 
    ( name = '+@dbname+',
      filename = '''+@dbfile+''')
    log on
    ( name = '+@dblog+',
     filename = '''+@dblogfile+''')
    ')
    goexec crtdb 
    @dbname = 'xymis3',
    @dbfile = 'd:\xymisdata\xymis3.mdf',
    @dblog = 'xymis2log',
    @dblogfile = 'd:\xymisdata\xymis3log.ldf'