Я реализую программное приложение, которое использует базу данных сервера SQL.Я запускаю сохраненный процесс в макросе, который я создал в своем приложении, однако я не могу получить «StartTime» (поле datetime) для обновления.Вот код:
ALTER PROCEDURE [dbo].[pAfterFirstRun] ( @scheduleDate datetime ) AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #VehicleId ( VehicleId INT )
INSERT INTO #VehicleId
(VehicleId)
SELECT VehicleId
FROM ResourceDaily
WHERE WorkDay = @scheduleDate
AND ResourceName = 'RUN 1'
AND ResourceCode IN (SELECT ResourceCode
FROM ResourceDailySchedule
WHERE WorkDay = @scheduleDate)
UPDATE ResourceDaily
SET StartTime = '1899-12-30 07:20:00.000'
WHERE WorkDay = @scheduleDate
AND ResourceName = 'RUN 2'
AND VehicleId IN (SELECT VehicleId
FROM #VehicleId)
UPDATE ResourceDaily
SET StartAddress = '568 BUCKS HILL RD',
StartCity = 'WATERBURY',
StartState = 'CT',
StartZipCode = '06704',
StartXCoord = '-73.029938',
StartYCoord = '41.606228'
WHERE WorkDay = @scheduleDate
AND ResourceName = 'RUN 2'
AND VehicleId IN (SELECT VehicleId
FROM #VehicleId)
END
Я знаю, что это странный способ выполнить работу;Первоначально я не создавал временную таблицу.Все это было сделано с помощью одного оператора обновления, и я продолжал изменять его, чтобы посмотреть, смогу ли я заставить его работать.
Исходный оператор обновления включал в себя обновления StartTime, StartAddress, StartCity, StartState, StartXCoord и StartYCoord, все водин оператор, и все будет обновлено, кроме поля StartTime.
Я должен также упомянуть, что если бы мне нужно было выполнить оператор UPDATE в Management Studio и установить для @scheduleDate значение «5/2/2011», оператор обновлениябудет работать правильно ... кажется, что он не запускается в приложении с параметром @scheduleDate.