日期:2014-05-17  浏览次数:20551 次

怎么用字符串来代表某个表中的字段?
我有两个字符串,一个是字段的名字,一个是具体的数据。怎么才能把数据正确的插入的表里?

------解决方案--------------------
declare @str1 varchar(10)='col1',@str2 varchar(20)='值'
exec ('insert into tb ('+@str1+') values('''+@str2+''')')
------解决方案--------------------
declare @field varchar(20)
declare @value varchar(20)
declare @sql varchar(1000)
set @sql='insert into TB('+@field+') values('''+@value+'')'
exec(@sql)
------解决方案--------------------
SQL code

这个需要动态语句
create table #t
(
name varchar(10),
id int
)
go
declare @str1  varchar(10)--字段名字
declare @str2 varchar(10)--对应的值

set @str1='name'
set @str2='tracy'

declare @str varchar(1000)
set @str='insert #t('+@str1+') values('+''''+@str2+''''+')'
print @str
--insert 表的名字(name) values('tracy')
exec(@str)

select * from #t

/*
name       id
---------- -----------
tracy      NULL

(1 行受影响)

*/