【发布时间】:2011-06-23 04:41:39
【问题描述】:
我想创建一个存储过程,我想在表中插入值。 但我不知道我必须在哪个字段中插入值 运行时我将决定应该在哪个字段中插入值。 我想做的是
insert into Tablename(@ColumnName, Description)
values (@ColumnValue, @MH_Description)
我可以像上面的例子那样在存储过程中传递这种类型的参数吗??
我也想用条件作为
声明@Query nvarchar(4000) 声明@Query1 nvarchar(4000) 声明@ParmDefinition nvarchar(500);
set @Query = ' insert into tbl_temp(' + quotename(@ColumnName) +',Description) values (@ColumnValue, @Description)' set @Query1 = ' update tbl_temp set' + quotename(@ColumnName) +'=@ColumnValue, Description=@Description' set @ParmDefinition = N'@ColumnValue varchar(100),@Description varchar(100)' if exists(select 'true' from tbl_temp where quotename(@ColumnName)=@ColumnValue) begin exec sp_executesql @Query1, @ParmDefinition, @ColumnValue = @ColumnValue, @Description = @Description end else begin exec sp_executesql @Query, @ParmDefinition, @ColumnValue= @ColumnValue, @Description = @Description end
我做错了什么?
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql sql-server-2008