日期:2014-05-18  浏览次数:20447 次

存储过程的写法疑问
存储过程的参数是字段名,根据这个字段名把参数插到表中相应的字段

create proc sp_import
  @str nvarchar(1),
  @col nvarchar(1)
as
begin
  insert into tb(@col) 
  select @str
end

我知道上面这么写是错的,除了@sql写个拼合语句外,还有其他方法吗?谢谢

------解决方案--------------------
SQL code

create proc sp_import
  @str nvarchar(1),
  @col nvarchar(1)
as
begin
  exec('insert into tb('+@col+') 
  select @str')
end

------解决方案--------------------
探讨
存储过程的参数是字段名,根据这个字段名把参数插到表中相应的字段

create proc sp_import
@str nvarchar(1),
@col nvarchar(1)
as
begin
insert into tb(@col)
select @str
end

我知道上面这么写是错的,除了@sql写个拼合语句外,还有其他方法吗?谢谢

------解决方案--------------------
SQL code

create proc sp_import
  @str nvarchar(1),
  @col nvarchar(1)
as
begin
  exec('insert into tb('+@col+') 
  select ‘+@str)
end

------解决方案--------------------
create proc sp_import
@str nvarchar(1),
@col nvarchar(1)
as
begin
exec('insert into tb('+@col+') 
select '+@str)
end
------解决方案--------------------
探讨

引用:

create proc sp_import
@str nvarchar(1),
@col nvarchar(1)
as
begin
exec('insert into tb('+@col+')
select '+@str)
end

这样也是错的,试过了要这样
SQL code

create proc sp_import
……