【发布时间】:2013-09-23 10:06:33
【问题描述】:
代码:
ALTER PROCEDURE [dbo].[SP_LMS_dealerorusercreation_IUDS]
@dealrid bigint,
@rid bigint,
@stateid bigint,
@regonid bigint,
@Locid bigint,
@pid varchar(MAX),
@address varchar(max),
@dealrname varchar(25),
@landno bigint,
@mobno bigint,
@altcontno bigint,
@email varchar(35),
@desig varchar(25),
@reporting varchar(30),
@status int,
@action varchar(10),
@CompanyId Uniqueidentifier
AS
DECLARE @TranStatus VARCHAR(5)
BEGIN TRY
BEGIN TRANSACTION
IF(@action='Insert')
BEGIN
INSERT INTO LMS_dealerorusercreation(
rid,
stateid,
regonid,
Locid,
addres,
dealrname,
landno,
mobno,
altcontno,
email,
desig,
reporting,
status,
CompanyId
)
VALUES(
@rid,
@stateid,
@regonid,
@Locid,
@address,
@dealrname,
@landno,
@mobno,
@altcontno,
@email,
@desig,
@reporting,
@status,
@CompanyId
)
SELECT @dealrid = dealrid FROM LMS_dealerorusercreation WHERE mobno = @mobno AND email = @email
EXEC [dbo].[SP_LMS_SetDealerProductMapping]
@dealerId = @dealrid,
@prodid = @pid
SET @TranStatus='TRUE';
END
IF(@action='Update')
BEGIN
UPDATE LMS_dealerorusercreation set rid= @rid,
stateid=@stateid,
regonid=@regonid,
Locid=@Locid,
addres=@address,
dealrname=@dealrname,
landno=@landno,
mobno=@mobno,
altcontno=@altcontno,
email=@email,
desig=@desig,
reporting=@reporting,
status=@status
WHERE dealrid=@dealrid
SET @TranStatus='TRUE';
END
IF(@action='Delete')
BEGIN
DELETE FROM LMS_dealerorusercreation WHERE dealrid=@dealrid
SET @TranStatus='TRUE';
END
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
DECLARE @AI VARCHAR(MAX)
DECLARE @EM VARCHAR(MAX);
SET @AI = 'Not Provided'
SET @EM = ERROR_MESSAGE();
EXEC USP_SetException
@ExceptionDetail = @EM,
@AdditionalInfo = @AI
SET @TranStatus='FALSE';
END CATCH
SELECT @TranStatus;
得到的错误是
无法将值 NULL 插入到列“dealrid”、表“DB_LMS.dbo.LMS_dealerorusercreation”中;列不允许空值。插入失败。
【问题讨论】:
-
您是否真的希望有人通过所有这些代码并回答?可能这里甚至没有足够的信息来回答。我也没有看到您有任何解决此问题的尝试,也没有进一步的信息。这个问题不符合最低标准。
-
旁注 - CREATE PROCEDURE:“在命名过程时避免使用 sp_ 前缀。SQL Server 使用此前缀来指定系统过程。使用前缀可以如果存在同名的系统过程,则导致应用程序代码中断。”
标签: sql-server tsql stored-procedures