Я не могу заставить мой триггер Microsoft SQL Server работать должным образом - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь запустить этот триггер каждый раз, когда информация вставляется в одну таблицу, а затем запускаю информацию вместе с Visual Studio, которая отправляет информацию в виде текстового файла в мою папку, где я могу использовать эту информацию позжевремя для регистрации транзакций.

Вот моя таблица:

CREATE TABLE VDtoText
(
    AccountNumber INT NOT NULL,
    GarmentNumber INT NOT NULL,
    TicketNumber INT NOT NULL,
    SlotNum INT NULL,
    DateTimeAdded DateTime NOT NULL DEFAULT CURRENT_TIMESTAMP 
)

Вот триггер:

/* first run these both separately after creating table */ 
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO 

EXEC sp_configure 'xp_cmdshell', 1;  
GO
RECONFIGURE;  
GO

CREATE TRIGGER UpdateInsertPlz
ON VDtoText  
AFTER INSERT
AS
BEGIN
    SET NOCOUNT ON; 

    DECLARE @sql NVARCHAR(4000)

    SELECT @sql = 'bcp SUVOAS.dbo.VDtoText out "C:\Users\benso\OneDrive\Desktop\Test\Final2\WC\WCtoPOS.txt" -c -t"," -T -S' + @@SERVERNAME
    PRINT @sql

    EXEC master..xp_cmdshell @sql
END;

DECLARE @sql NVARCHAR(4000)

SELECT @sql = 'bcp SUVOAS.dbo.VDtoText out "C:\Users\benso\OneDrive\Desktop\Test\Final2\WC\WCtoPOS.txt" -c -t"," -T -S' + @@SERVERNAME

PRINT @sql

EXEC master..xp_cmdshell @sql

Этот код сам по себе правильно отправит информацию, как яхотел бы, но пока он находится в триггере, он просто продолжает пытаться выполнить, и я просто вижу, как все время крутится колесо на Microsoft SQL, и Visual Studio непрерывно возвращает:

Поток 0x2a34 завершилсяс кодом 0 (0x0). Нить 0x3d38 вышла с кодом 0 (0x0). Нить 0x562c вышла с кодом 0 (0x0). Нить 0x5e14 вышла с кодом 0 (0x0). Поток 0x31fc вышел с кодом 0 (0x0).

и не отправляет информацию о вставленных данных в таблицу.

Пожалуйста, помогите:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...