一个变量,@s=‘a‘,’b‘,’c‘,’d’现在先求条插入语句。
我知道insert into tb(col1,col2,col3,col4) values('a','b','c','d')这样能实现!
我怎样能把values()里面的值,换成这个变量,然后插入到表中?

解决方案 »

  1.   

    EXEC('insert into tb(col1,col2,col3,col4) values('+@s+')')
      

  2.   

    declare @s varchar(100)
    set @s='''a'',''b'',''c'',''d'''declare @sql varchar(1000)
    set @sql ='insert into tb(col1,col2,col3,col4) values(' + @s + ')'
    exec( @sql)
      

  3.   

    if object_id('test')is not null drop table test
    go
    create table test(col1 varchar(10),col2 varchar(10),col3 varchar(10),col4 varchar(10))
    declare @s varchar(20)
    set @s='''a'',''b'',''c'',''d'''
    exec('insert into test(col1,col2,col3,col4)select '+@s)
    select * from test
    /*col1       col2       col3       col4
    ---------- ---------- ---------- ----------
    a          b          c          d(1 個資料列受到影響)
    */
      

  4.   

    declare @sql varchar(400),@s varchar(20)
    set @s='''a'''+','+'''b'''+'''c'''+','+'''d'''
    set @sql=''
    set @sql='insert into tb(col1,col2,col3,col4) values('+@s+')'
    exec(@sql)
      

  5.   

    If not object_id('[tb]') is null
    Drop table [tb]
    Go
    Create table [tb]([Col1] nvarchar(1),[Col2] nvarchar(1),[Col3] nvarchar(1),[Col4] nvarchar(1))Godeclare @s varchar(100)
    set @s='''a'',''b'',''c'',''d'''
    EXEC('insert into tb(col1,col2,col3,col4) values('+@s+')')select * from tb
    /*
    Col1 Col2 Col3 Col4
    ---- ---- ---- ----
    a    b    c    d(1 行受影响)
    */
      

  6.   

    CREATE TABLE TB(col1 CHAR,col2 CHAR,col3 CHAR ,col4 CHAR  )
    declare @s varchar(100)
    set @s='''a'',''b'',''c'',''d'''
    EXEC('insert into tb(col1,col2,col3,col4) SELECT '+@S+'')SELECT * FROM TB
    col1 col2 col3 col4 
    ---- ---- ---- ---- 
    a    b    c    d(所影响的行数为 1 行)