Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用TVP表值参数,有哪些步骤值得注意?_Sql Server_Sql Server 2008_Ado.net - Fatal编程技术网

Sql server 使用TVP表值参数,有哪些步骤值得注意?

Sql server 使用TVP表值参数,有哪些步骤值得注意?,sql-server,sql-server-2008,ado.net,Sql Server,Sql Server 2008,Ado.net,我正在ADO.NET中使用表值参数,并且我的存储过程工作不正常。我有两个其他的工作很好。我比较了代码和表的顺序等,它们似乎都是好的 数据从我的代码传递到存储过程中,不会发生错误,而不是简单地插入。我不知道是否有什么我不知道我错过了。。。我完全迷路了。。花了很多时间想弄清楚,但没办法 一切似乎都很好没有错误什么都没有,但它不工作 以下是类型: CREATE TYPE [dbo].[NameTableType] AS TABLE( [ID] [int] NULL, [MYID] [int] NULL

我正在ADO.NET中使用表值参数,并且我的存储过程工作不正常。我有两个其他的工作很好。我比较了代码和表的顺序等,它们似乎都是好的

数据从我的代码传递到存储过程中,不会发生错误,而不是简单地插入。我不知道是否有什么我不知道我错过了。。。我完全迷路了。。花了很多时间想弄清楚,但没办法

一切似乎都很好没有错误什么都没有,但它不工作

以下是类型:

CREATE TYPE [dbo].[NameTableType] AS TABLE(
[ID] [int] NULL,
[MYID] [int] NULL,
[Name] [varchar](50) NULL,
    )
    GO
这是我的桌子

ALTER PROCEDURE [dbo].[Insert]
(
@TVP as NameTableType readonly
)                                      
AS
  BEGIN TRANSACTION
  BEGIN TRY
      INSERT INTO [dbo].[MYTABLE]
      ([ID],[MYID],[NAME])
      SELECT [ID],[MYID],[NAME]
       from @TVP
      COMMIT TRANSACTION
  END TRY

  BEGIN CATCH
      ROLLBACK TRANSACTION
  END CATCH 
在我的数据库中是否有我应该注意的事情?它是什么?如果过程失败,是否有方法返回错误

非常感谢您的建议


谢谢,不要只是捕获并丢弃错误,请尝试:

BEGIN CATCH
    ROLLBACK TRANSACTION;
    DECLARE @msg NVARCHAR(MAX) = ERROR_MESSAGE();
    RAISERROR(@msg, 11, 1);
    RETURN;
END CATCH
现在你基本上是说“如果有错误,就忽略它。”

  • 检查是否存在导致问题的触发器
  • Sql探查器在这种情况下很有用

  • 您有权访问SQL Server Management Studio(SSMS)吗?如果是,请尝试在那里运行存储过程。如果它在SSMS中运行,那么您的ADO.Net代码有问题,这很可能是问题的根源。您所说的“不工作”是什么意思?数据没有出现在您的表中?请检查以确保连接到数据库的同一副本。您的连接字符串是否包含类似于
    AttachDbFileName
    的参数?抱歉,我不熟悉SSMS工具,但我可以获取它。如果我获取该工具,您能告诉我在哪里可以运行该工具吗?它不插入,我的数据库与其他2个插入一起工作。我没有此工具。我的VS中没有错误。那么您是否尝试过在
    CATCH
    块中执行任何有用的操作,比如引发错误?