使用新数据更新存储过程中的表

时间:2015-09-25 10:14:59

标签: sql sql-server tsql stored-procedures sql-server-2012

我有一个存储过程,我将3个参数传递给,并导出该表中的所有内容,让我们称之为dbo.myFinalTable。我想实现两件事:

任务#1:

当我使用我正在传递的任何参数再次执行该过程时,我需要附加数据。

我尝试在最终的表创建结束时添加它,但总行数保持不变。有什么可做的?

IF (EXISTS (SELECT * 
            FROM INFORMATION_SCHEMA.TABLES 
            WHERE TABLE_SCHEMA = 'myDatabase' 
              AND TABLE_NAME = 'dbo.myFinalTable'))
BEGIN
    INSERT INTO dbo.myFinalTable
       SELECT
           someValues 
       FROM #tempInWhichIcalulate
       ORDER BY someOtherStuff
END

任务#2:

我这样执行:

execute [myStoredProcedure] 'someString', '123', '2013-03-14'

我希望上面的查询仅在列idtheDate(来自dbo.MyFinalTable时附加数据;这些列的数据是从存储过程传递的,在此示例中为值{ {1}},'123')已经没有那些值。

注意:我的程序声明如下:

'2013-03-14'

1 个答案:

答案 0 :(得分:0)

如果我了解你的目标,可能是查询:

insert into dbo.myFinalTable
select
@theString as MyString,
@id as MyId,
@theDate as MyDate
where not exists(select * from dbo.myFinalTable 
                 where MyId = @id
                 and MyDate = @theDate)