实在搞不定,请兄弟们帮我看看这段存储过程
CREATE PROCEDURE dbo.AddNewMsg
(
@AuthorID int,
@ThreadID int,
@MsgContent ntext,
@Audited bit,
@IpAddress nvarchar(24)
)
AS
declare @MsgLevel smallint
SELECT @MsgLevel=MAX(MsgLevel) FROM MsgData WHERE ThreadID=@ThreadID
IF (@MsgLevel IS NULL)
BEGIN
SET @MsgLevel=0
END
SET @MsgLevel =(1+@MsgLevel)
INSERT INTO MsgData(AuthorID,ThreadID,MsgContent,MsgLevel,Audited)VALUES (@AuthorID,@ThreadID,@MsgContent,@MsgLevel,@Audited)
IF @@ROWCOUNT <> 1
BEGIN
PRINT 'AddNewMsg2 Failed '
RETURN 0
END
UPDATE ThreadData SET LastReply=GETDATE(),replycount=(1+replycount) WHERE ThreadID=@ThreadID
INSERT INTO IPData (ThreadID, MsgLevel,IpAddress)VALUES(@ThreadID, @MsgLevel,@IpAddress)
RETURN @MsgLevel
我自己的机器装的是VS2005+SQL2005,运行正常.
服务器上装的是SQL2000,没法运行,又不知道错在什么地方.请大家指点一下.
------解决方案--------------------看不出来问题,是数据库表的问题吗?
------解决方案--------------------存储过程看不出什么问题;
------解决方案--------------------UP下,先吃饭回来看呵呵
------解决方案--------------------把你那个存储过程在服务器上调下看看;如果你可以在服务器上进行操作的话~~
------解决方案--------------------可以在VS里执行一下看看
------解决方案--------------------CREATE PROCEDURE dbo.AddNewMsg
把上面的dbo去掉
可能MsgData这个表不是用户dbo创建的
MsgLevel赋值是不是可以这样写:
--
select @MsgLevel = isNull(max(MsgLevel),0)+1 FROM MsgData WHERE ThreadID=@ThreadID