2017-06-14 65 views
-1

我正试图用下面的代码使用BizTalk插入数据到表中。但是我面临错误,因为“过程或函数Emp_Details指定的参数太多。”执行时发生错误表类型参数

有人可以帮我解决这个问题吗?

ALTER PROCEDURE [dbo].[Emp_Details] 

       (@InsertDetails InsertDetailsType readonly) 
    AS 
    Begin 

    Truncate table [dbo].[Emp_Details] 

      INSERT INTO [dbo].[Emp_Details] 
       (
       [NAME], 
       [DESCRIPTION], 
       [EMPID] 

      ) 
     select 

       [NAME], 
       [DESCRIPTION], 
       [EMPID] 
    from @InsertDetails; 


    Begin 
    if exists(select 1 from [dbo].[Emp_Details]where NAME='Raul') 

    Delete from [Emp_Details]where NAME='Raul' 

    End 

    end 
+0

为什么你会因为如果存在条件 – 2017-06-14 07:14:19

+0

Edited..now检查代码 – Superr

+0

在第一条语句的截断Emp_Details表然后 – 2017-06-14 07:15:49

回答

-1

转发先前用作参考的相同示例代码。

USE <Database> 
GO 

/* This is a template table */ 
CREATE TYPE Emp_Details AS TABLE 
([Name]  VARCHAR(100) 
, [Description] VARCHAR(100) 
, [Address]  VARCHAR(100)); 
GO 

/* The following is your Table Emp_Details which you must be having already*/ 
CREATE TABLE Emp_Details 
([Name]  VARCHAR(100) 
, [Description] VARCHAR(100) 
, [Address]  VARCHAR(100)); 
GO 

/* Consider this as your Input Data i.e CSV file or Excel (Note: I have created a table for sample)*/ 
CREATE TABLE Emp_Details1 
([Name]  VARCHAR(100) 
, [Description] VARCHAR(100) 
, [Address]  VARCHAR(100)); 
GO 


INSERT INTO Emp_Details1 VALUES ('John','Test','123') 
INSERT INTO Emp_Details1 VALUES ('John1','Test1','1234') 
INSERT INTO Emp_Details1 VALUES ('John2','Test2','1235') 
GO 

SELECT * FROM Emp_Details 

/* Declare a variable that references the type. So when you reference a `TYPE` it takes the table template which we created previously*/ 
DECLARE @Emp AS Emp_Details; 

/* Add data to the table variable. In your case push the data that you get into the @Emp */ 
INSERT INTO @Emp ([Name], [Description], [Address]) 
    SELECT [Name], [Description], [Address] 
    FROM Emp_Details1; 

/* Pass the table variable data to a stored procedure. */ 
EXEC [dbo].[Insert_Deatils] @Emp; 
GO 

SELECT * FROM Emp_Details 
,您声明此表型@InsertAircraft
+0

我不明白这个 – Superr

+0

@Raul在代码中添加了一些注释,如果你仍然无法理解它,你能解释一下代码的哪一部分。 – Joby

相关问题