既然查询分析器中能成功,那可能是权限的问题吧你在查询分析器和.net中使用同一个用户的吗?

解决方案 »

  1.   

    用VB测试过,没有问题查询分析器中调用没问题,也许是你的.net 调用方法出了问题
      

  2.   

    --这是我做的测试用到的表及数据库use northwind
    go--创建默认值
    create default 性别 as '男性'
    gocreate default 年龄 as 18
    go--创建测试表
    create table tb(姓名 varchar(10),性别 varchar(10),年龄 int)--绑定默认值
    exec sp_bindefault 性别, 'tb.性别'
    exec sp_bindefault 年龄, 'tb.年龄'
    go--创建存储过程
    use pubs
    gocreate proc p_test
    as
    set nocount on
    insert tempdb.dbo.tb(姓名) values('a')
    select re=count(*) from tempdb.dbo.tb
    go--在查询分析器中的测试是没有任何问题的--然后我在VB中用下面的代码进行测试,结果是成功的Sub test()
        Dim db As Object
        
        Set db = CreateObject("ADODB.Connection")
        
        db.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=zj;Initial Catalog=master"
        Debug.Print db.Execute("exec pubs.dbo.p_test").Fields(0)
        db.Close
    End Sub
      

  3.   

    不会吧,我试过了,把表a 的默认值改为不用自定义默认dv1 ,就可以正常插入了。。
      

  4.   

    因为你在查询分析器中测试正常,而我在VB中也测试正常,所以我怀疑是你的.net的问题另外,你的SQL有没有打补丁,没有的话先打上补丁再说,别又是补丁在作怪
      

  5.   

    我朋友试过了。用DELPHI 试过,也不行
      

  6.   

    呵呵,我在想:会不会你的默认值是在企业管理器里设置的?而不是由SQL写的,这样发布到远程机器上自然是没有默认值的。哈哈,我是不是很菜??