我无法使我的Microsoft SQL Server触发器正常运行

时间:2019-10-07 23:55:46

标签: sql-server triggers

我试图每次将信息插入到单个表中时都运行此触发器,然后将信息与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)。

并且不将插入数据的信息发送到表。

请帮助:)

0 个答案:

没有答案