猿问

sqlserver查询,控制台应用程序

sqlserver数据库中某个表写了一个触发器:

USE [MNRYMAS]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[tritest]
ON [dbo].[Equip_LAirCompressor]
after insert 
AS 
BEGIN

declare @newID varchar(50),@Result varchar(100)      
       select @newID=ID from inserted    set @Result = 'D:\Debug\Test_GetData.exe "'+@newID+'"'
    EXEC master..xp_cmdshell @Result

    SET NOCOUNT ON;



END

该触发器是数据库添加数据时调用一个外部的exe(控制台应用程序)。传入参数就是当前插入数据的id。控制台应用程序根绝这个id去查询这条插入的数据进行操作。

具体得查询方式如下:

但是,当把ID当参数传入应用程序时,直接到 

SqlDataReader read = cmd.ExecuteReader();   这句就会报错,错误:Timeout expired.

如果按照上面ID的注释方式传入(

string ID = "151055";),直接在程序中吧参数写入进行测试的话,就没有问题。

崩溃了,就是一个是传入的,一个是写死的,传入就不行呢?

参数是可以传进去的。


开满天机
浏览 794回答 1
1回答

红糖糍粑

Console.WriteLine(ID) 打印一下传入的 ID 值看是否有问题
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答