declare @str varchar(50)
set @str='姓名 char(8) null , 性别 char(2) null'
CREATE TABLE lsb(@str)为何不能执行?CREATE TABLE语句中不能用变量吗?如果要用变量或参数实现,怎么办?

解决方案 »

  1.   

    declare @str varchar(50) 
    set @str='姓名 char(8) null , 性别 char(2) null' 
    exec('CREATE TABLE lsb(' + @str + ') ') 
    select * from lsbdrop table lsb/*
    姓名       性别   
    -------- ---- (所影响的行数为 0 行)
    */
      

  2.   

    exec ('create table lsb(' + @str + ')')
      

  3.   

    declare @str varchar(50) 
    set @str='姓名 char(8) null , 性别 char(2) null' 
    exec('CREATE TABLE lsb(' + @str + ') ') 
    insert into lsb values('A','男')
    insert into lsb values('A','女')select * from lsbdrop table lsb/*
    姓名       性别   
    -------- ---- 
    A        男
    A        女(所影响的行数为 2 行)
    */
      

  4.   

    declare @str varchar(5000) 
    set @str='姓名 char(8) null , 性别 char(2) null' 
    select @str='CREATE TABLE lsb('+@str+')' 
    exec (@str)