存储过程困扰...插入二进制文件

时间:2010-05-18 18:24:52

标签: c# .net sql tsql stored-procedures

好的,所以我在我的SQL 2008数据库中有这个storedproc(在2005年工作过/曾经使用过)...

CREATE PROCEDURE [dbo].[SetBinaryContent]
    @Ref nvarchar(50),
    @Content varbinary(MAX),
    @ObjectID uniqueidentifier
AS
BEGIN

    DELETE ObjectContent WHERE ObjectId = @ObjectID AND Ref = @Ref

    IF DATALENGTH(@Content) > 5
    BEGIN
        INSERT INTO ObjectContent
            (Ref,BinaryContent,ObjectId)
        VALUES
            (@Ref,@Content,@ObjectId)
    END

    UPDATE Objects SET [Status] = 1
    WHERE ID = @ObjectID
END

相对简单,我在C#中使用一个字节数组并将其放入@Content中,然后为其他参数提供一个guid和字符串,然后我们离开。

...

太棒了,它曾经工作......但它不再......所以呃......这个存储过程出了什么问题?

我已经逐步完成了我的C#代码,因为我在某种程度上搞砸了但是它肯定会添加params并给它们正确的值,那么是什么会导致服务器正确地停止执行这个存储过程呢?

调用此proc时,db中没有任何更改...没有新的记录添加到ObjectContent表中。

很奇怪......

2 个答案:

答案 0 :(得分:3)

您是否运行Profiler以确切了解发送给SQL Server的内容?

您是否尝试使用从Profiler获取的值手动执行存储过程?

答案 1 :(得分:0)

HLGEM ......

我要给你这个,因为如果我可以使用分析器,它会显示实际的修复。

基本上我在我的代码中挖得更深一些,发现我实际上是一个傻瓜...我的配置文件中有几个连接字符串,不知何故我拿错了,所以它工作得很好。 ..只是在worng db。

我很遗憾浪费任何人的时间。

我现在不觉得愚蠢......

我也投票给你了... jeez我是一个布偶!!