use master
go
--创建数据库
declare @test varchar;
set @test = 'test'
exec('
create database '+@test+'
on
(
name = '+@test+'_dat,
filename = ''i:\Data\'+@test+'.mdf'',
size = 10
)
log on
(
name = '+@test+'_log,
filename = ''i:\Data\'+@test+'.ldf'',
size = 5mb
)
')
go为什么这样写只能建立出一个叫做t的数据库,而不是test

解决方案 »

  1.   

    declare @test varchar(200); 
      

  2.   

    declare @test varchar; --错误
    指定长度..declare @test varchar(10);   --正确
      

  3.   

    use master
    go
    --创建数据库
    declare @test varchar;
    set @test = 'test'
    exec(' 
    ----------
    变量@test定义成只能容纳一个字符,所有只有test的第一位赋值成功,参数我在上面说的修改一下定义就可以了.