Мой код не обновляет поле темы. Это ноль. У кого-нибудь есть идеи?
INSERT INTO [Messages]([Sender], [Receiver], [Job_Number], [Subject], [MessageText], [DateSent])
VALUES(@Sender, @Receiver, @Job_Number, @Subject, @MessageText, @DateSent)
SET @ThreadID = SCOPE_IDENTITY()
UPDATE [Messages]
SET Thread = @ThreadID
WHERE MessageID = @ThreadID
EDIT:
Кажется, процедура UPDATE вообще не выполняется. Я даже добавил следующий код в конец sproc, но ничего не обновляется.
UPDATE Comments
SET SomeField = @ThreadID
where SCID = 33
РЕДАКТИРОВАТЬ:
/****** Object: Table [dbo].[Messages] Script Date: 04/09/2010 12:08:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Messages](
[MessageID] [int] IDENTITY(1,1) NOT NULL,
[Sender] [varchar](30) NOT NULL,
[Receiver] [varchar](30) NOT NULL,
[Job_Number] [varchar](20) NULL,
[Subject] [varchar](200) NULL,
[MessageText] [varchar](max) NULL,
[DateSent] [datetime] NULL,
[Thread] [int] NULL,
CONSTRAINT [PK_Messages] PRIMARY KEY CLUSTERED
(
[MessageID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Messages] ADD CONSTRAINT [DF_Messages_DateSent] DEFAULT (getdate()) FOR [DateSent]
GO
EDIT:
Когда я выполняю хранимую процедуру из Management Studio, обновление работает просто отлично. Проблема в моем приложении, когда я вызываю его с помощью SQLHelper:
SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["Conn"].ConnectionString,
"spMessagesInsert",
0,
message.Sender,
message.Receiver,
message.Job_Number,
message.Subject,
message.MessageText,
message.DateSent
);
РЕДАКТИРОВАТЬ: В конечном итоге я изменил программный код для вызова хранимой процедуры с использованием Linq-to-sql вместо SqlHelper. Это, казалось, решило проблему.