2015-09-25 5 views
0

У меня есть хранимая процедура, в которую я передаю 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' 

Я хочу запрос выше только добавить данные, если столбцы id и theDate (от dbo.MyFinalTable; эти столбцы имеют их данные переданы из хранимой процедуры, в этом примере значения '123', '2013-03-14') уже не имеют этих значений.

Примечание: моя процедура заявление выглядит следующим образом:

alter procedure [myStoredProcedure] 
    (@theString varchar (30), 
    @id varchar (10), 
    @theDate date) 
+0

Здравствуйте, Можете ли вы опубликовать результаты 'DBO. FinalTable'? @ CM2K – mfredy

+0

важными столбцами являются 'theDate' и' id', остальные из них - только некоторые значения, рассчитанные. Не можете опубликовать мою реальную таблицу – CM2K

+0

И это хранимая процедура 'изменить процедуру [myStoredProcedure] ( @theString VARCHAR (30), @id VARCHAR (10), дата @theDate )' @ CM2K – mfredy

ответ

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) 
Смежные вопросы