【发布时间】:2014-08-17 04:56:59
【问题描述】:
我有一个表EPFReport,我需要用存储过程填充表。
ALTER procedure [dbo].[getEPFData] @EPFCol varchar(max) , @empID varchar(max)
AS
DECLARE @sql nvarchar(max) ;
DECLARE @sql2 nvarchar(max);
set @sql = 'SELECT c.employeeID,c.empName, c.month,@sql1 from Common c where c.employeeID='+@empID
set @sql2= 'SELECT ' + @EPFCol + ' FROM Common where employeeID='+@empID
truncate table EPFReport;
INSERT into EPFReport (empID, empName, monthVal)
execute(@sql);
到此为止,查询@sql 的结果将被插入到表中的要求已得到满足。现在我需要用@sql2 查询更新它,所以问题是如何在存储过程中为update 语句执行查询?
PS:我用过的插入
INSERT into EPFReport (empID, empName, monthVal)
execute(@sql);
这里还返回一组结果(每个月)。没有一行或单元格的结果。所以分配给一个变量并更新是行不通的。
更新:该表包含这些列
[empID] [empName] [EPFItemValues] [monthVal]
第一个查询只更新 3 列,第二个查询应该更新列 EPFItemValues。
【问题讨论】:
-
澄清一下,您是否要更新您插入的内容?
-
是的。但 EPFItemValues 列未填充查询 @sql。所以在他开始时它有 NULL 值。我正在尝试使用查询“@sql2”更新该列。
标签: sql sql-server stored-procedures sql-update dynamic-sql