Я столкнулся с очень странной ошибкой в SQL, с которой мне нужна помощь. Приведенный ниже код создает две хранимые процедур, которые мне нужно для этого отчета:Сохраненная процедура выполняется успешно, но сбой при вызове из задания
USE [ONDTTEST]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE ONDT_OPS_OTD_STEP1
AS
BEGIN
SET NOCOUNT ON;
/** Create Table **/
CREATE TABLE ONDT_OPS_OTD_SMARTVIEW
(
ID varchar(15) NOT NULL,
STATUS char(1) NOT NULL
);
/** Insert data into table **/
INSERT INTO [ONDT_OPS_OTD_SMARTVIEW]
SELECT [ID]
,[STATUS]
FROM [CUSTOMER_ORDER]
WHERE [STATUS] = 'H';
/** Update customer order table from H to R **/
UPDATE [CUSTOMER_ORDER]
SET [STATUS] = 'R'
WHERE [STATUS] = 'H';
END
GO
CREATE PROCEDURE ONDT_OPS_OTD_STEP2
AS
BEGIN
SET NOCOUNT ON;
/** Update records back to H **/
UPDATE [CUSTOMER_ORDER]
SET [STATUS] = 'H'
WHERE [ID] IN (SELECT [ID] FROM [ONDT_OPS_OTD_SMARTVIEW]);
/** Drop Table **/
DROP TABLE ONDT_OPS_OTD_SMARTVIEW;
END
GO
Когда я исполняю как хранимые процедуры, которые выполняют успешно, однако, когда я звоню хранимую процедуру из запланированного задания он дает следующее сообщение об ошибке:
Executed as user: admin. String or binary data would be truncated. [SQLSTATE 22001] (Error 8152) The statement has been terminated. [SQLSTATE 01000] (Error 3621). The step failed.
Я запустил профайлер и увидел, что он не работает на этапе обновления таблицы CUSTOMER_ORDER для обеих процедур. Столбец «Состояние» задается как char (1), и хранимая процедура работает правильно при вызове из запроса, но при вызове из задания он не работает.
Благодаря
Какая схема таблицы 'CUSTOMER_ORDER'? – SoulTrain
[Я поделился этим с помощью pastebin] (http://pastebin.com/gK3zTsdc). Благодарю. –
@ RafaelSampaio он сказал «схема», как только имена столбцов и типы данных для таблицы, а не всю эту информацию, которую вы просто сбросили. Как в 'ID int, Status char (1) ...' etc – Tanner