一个变量,@s=‘a‘,’b‘,’c‘,’d’现在先求条插入语句。
我知道insert into tb(col1,col2,col3,col4) values('a','b','c','d')这样能实现!
我怎样能把values()里面的值,换成这个变量,然后插入到表中?
我知道insert into tb(col1,col2,col3,col4) values('a','b','c','d')这样能实现!
我怎样能把values()里面的值,换成这个变量,然后插入到表中?
set @s='''a'',''b'',''c'',''d'''declare @sql varchar(1000)
set @sql ='insert into tb(col1,col2,col3,col4) values(' + @s + ')'
exec( @sql)
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 個資料列受到影響)
*/
set @s='''a'''+','+'''b'''+'''c'''+','+'''d'''
set @sql=''
set @sql='insert into tb(col1,col2,col3,col4) values('+@s+')'
exec(@sql)
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 行受影响)
*/
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 行)