我试图将其他表格的ID(Company
和Bank
)插入uBankID
和uCompanyID
EndUser
}表格和BankID
上Company
表格的INSERT
。
无论我做什么,所需的字段都没有填充,我做错了什么?我查看了ID上的内联select语句,试图抓住它,但无法理解它,它也不会编译。
变量在后端都存在且正确,并且正在被解析,除了这些ID之外的所有ID,因为C#没有任何问题我认为我的SQL存在问题,尤其是因为我对存储过程很新。
非常感谢任何帮助。
代码(瘦身):
CREATE PROCEDURE [ProcedureInsert]
@Title nvarchar(10),
@FirstName nvarchar(50),
@LastName nvarchar(50),
@Organisation nvarchar(50),
@Address nvarchar(50),
@uBankID int,
@uCompanyID int,
@BankID int,
@SortCode int,
@AccountNumber nvarchar(50),
@AccNameHolder nvarchar(50),
@cId int output,
@bId int output,
@euId int output
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [Bank](SortCode, AccountNumber, AccNameHolder)
VALUES(@SortCode, @AccountNumber, @AccNameHolder)
SET @bId = SCOPE_IDENTITY();
INSERT INTO [Company](Organisation, Address, BankID)
VALUES(@Organisation, @Address, @bId)
SET @cId = SCOPE_IDENTITY();
INSERT INTO [EndUser](Title, FirstName, LastName, uBankID, uCompanyID)
VALUES(@Title, @FirstName, @LastName, @uBankID, @cId)
SET @euId = SCOPE_IDENTITY();
END
答案 0 :(得分:1)
您需要声明变量。而Tab Alleman是对的,摆脱未使用的参数。
DECLARE @cId int;
DECLARE @bId int;
DECLARE @euId int;
INSERT INTO [BAD](SortCode,AccountNumber,AccNameHolder)
VALUES('1234','a234','Test Name')
SET @bId=SCOPE_IDENTITY();
INSERT INTO [Company](Organisation,Address1, Address2,City,County,PostCode,Telephone,BankID)
VALUES('AnOrganisation','addressesss','Address2','City','County','PostCode','0123one', @bId)
SET @cId=SCOPE_IDENTITY();
INSERT INTO [EndUser](Title,FirstName,LastName,Email,uBankID,uCompanyID)
VALUES('Sitle','Fiame','astName','vv@Email',@bId,@cId)
SET @euId=SCOPE_IDENTITY();
修改强>
如果没有使用这些参数,请删除它们,但它们不在示例代码中,否则请将它们留下。
另外,我使用单引号将数据转储到表中而不是变量中,如果它不起作用则银行结束代码出现问题。