gpt4 book ai didi

sql-server - 如何实现 MS SQL 2014 存储过程

转载 作者:行者123 更新时间:2023-12-04 16:48:39 25 4
gpt4 key购买 nike

我是 MS SQL 2014 存储过程的新手。我有一张表格,如下所示。我想创建一个存储过程。我设计了我的存储过程,但我感觉很难,我什至无法开始。谁能帮我,我该怎么做?

我必须将 CardNo、CardPassword 和 PosSerialNo 发送到 SQL 存储过程。作为返回,我需要获取客户的姓名和金额。

发送:卡号、卡密码、PosSerialNo

接收: 如果 Sending.CardPass = CardPasswordTable.Password 请执行下列操作: 如果成功,我会得到:CustomerName、CustomerSurname 和 Amount 如果没有,我会得到:“未找到数据”

我的表格:

1) 卡发行表:列: 卡号、卡号、客户号

2) 客户表:列: CustId、CustName、CustSurname

3) 帖子表:列: PosId、PosSerial、PosLocation

4) 付款表:列: PaymentId、PaymentLoaction、PaymentAmount

5) 卡密码表:列: 密码、密码

已编辑:

这是我的存储过程。当我执行时出现错误。

存储过程:

    USE [LTKB_Card]
GO
/****** Object: StoredProcedure [dbo].[CardCustomerControl] Script Date: 2.03.2016 10:03:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/*parameters*/
ALTER Procedure [dbo].[CardCustomerControl](
@CardNo varchar(50),
@CardPass varchar(10),
@PosSerialNo varchar(50)
)
AS
BEGIN
DECLARE /*internal of sp*/
@CustName varchar(100),
@CustId int,
@CustSurName varchar(100),
@Amout int,
@PosId int,
@PassId int

SELECT @CustName=CUS.CustomerName, @CustSurName=CUS.CustomerSurname ,@CustId=C.CardCustomer
FROM CardBASIM C
INNER JOIN CUSTOMERS CUS ON C.CardCustomer=CUS.CustomerName
WHERE C.CardNo=@cardNo

SELECT @PassId=PASID FROM CardPASSLIST C WHERE C.CardPassowrd=@CardPass

SELECT @Amout=PT.PaymentAmount
FROM POS P
INNER JOIN PAYMENT PT on P.PosLocation=PT.PAYID
WHERE P.PosSerial=@PosSerialNo

if (@CustId is not null and @PassId is not null and @PosId is not null)
begin
select @CustName CustName, @CustSurName CustSurname , @Amout Amount
end
else
begin
select 'NoDataFound'
end
END

执行语句:

    USE [LTKB_Card]
GO

DECLARE @return_value int

EXEC @return_value = [dbo].[CardCustomerControl]
@CardNo = N'5852354822730001',
@CardPass = N'jSCm6xkBpK',
@PosSerialNo = N'RR-312-001387'

SELECT 'Return Value' = @return_value

GO

错误:

Msg 248, Level 16, State 1, Procedure ElitcardCustomerControl, Line 21 The conversion of the varchar value '5852354822730001' overflowed an int column.

(1 row(s) affected)

(1 row(s) affected)

以下是表的关系:

enter image description here

最佳答案

查看这一行的数据模型

 INNER JOIN CUSTOMERS CUS ON C.CardCustomer=CUS.CustomerName

将字符串连接到整数。我无法查看数据来确定这是否是确切的问题,但根据您的模型,您想要的连接是这样的:

 INNER JOIN CUSTOMERS CUS ON C.CardCustomer=CUS.CUSTID

这是标准关系 - 我不知道为什么您认为客户的姓名是要加入的字段。

关于sql-server - 如何实现 MS SQL 2014 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35702649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com