Как разрешить хранимым процедурам работать только один раз ?
проблема
У меня есть хранимая процедура перемещения данных с помощью openrowset на основе инструкции select
Мне нужно изменить хранимую процедуру, чтобы предотвратить повторение данных
предположим у меня есть на столе компания по базе данных SQL server 2012
1 mazda
2 toyotal
при первом выполнении хранимой процедуры она отображается в excel с данными выше
при выполнении хранимой процедуры во второй раз она показывает повторяющиеся данные в excel следующим образом
1 mazda
2 toyotal
1 mazda
2 toyotal
так как же разрешить хранимую процедуру работать только один раз, чтобы предотвратить повторение ?
Что я уже пробовал:
create proc exportcompanydata ( @ImporterQueueID INT=1, @InputFilePath Nvarchar(500)='', @OutputFilePath Nvarchar(500)='', @UserID INT=1 ) as Declare @sqlout nvarchar(4000); Set @sqlout='INSERT INTO OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0 Xml;HDR=YES;Database='+@OutputFilePath+ ''','' SELECT * FROM [Sheet1$]'' ) select CompanyID,CompanyName,PersonLastCheckDate from CompanyManagers.Company with(nolock) WHERE CompanyID IS NOT NULL AND ISNULL(IsDeleted, 0) = 0' Execute(@sqlout)
Kornfeld Eliyahu Peter
Зачем создавать хранимую процедуру для чего-то, что вы хотите запустить только один раз в жизни?
Выполните параметризованный запрос...