SQL
INSERT
USE [INTERVIEW]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[USP_TBL_DA_ST_TODO_ITEMS_INSERT]
@pSBUID int,
@pEVENT_NAME nvarchar(20),
@pEVENT_DATE datetime,
@pREMARKS nvarchar(200),
@pEVENT_END_DATE datetime,
@pCREATED_BY nvarchar(200),
@strMessage VARCHAR(100) OUT
AS
BEGIN
-- 设置 NOCOUNT ON 以防止额外的结果集干扰 SELECT 语句。
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION NEWEVENT
-- 插入新记录到 TBL_DA_ST_TODO_ITEMS 表中
INSERT INTO [dbo].[TBL_DA_ST_TODO_ITEMS]
([SBUID]
,[EVENT_NAME]
,[EVENT_DATE]
,[REMARKS]
,[STATUS]
,[CREATED_DATE]
,[CREATED_BY]
,[EVENT_END_DATE])
VALUES
(@pSBUID
,@pEVENT_NAME
,@pEVENT_DATE
,@pREMARKS
,'NEW' -- 默认状态为 NEW
,GETDATE() -- 创建日期为当前日期时间
,@pCREATED_BY
,@pEVENT_END_DATE)
-- 检查是否没有错误
IF @@ERROR=0
BEGIN
-- 提交事务
COMMIT TRANSACTION NEWEVENT
SET @strMessage='OK' -- 设置输出消息为 OK
END
END TRY
BEGIN CATCH
-- 回滚事务
ROLLBACK TRANSACTION NEWEVENT
-- 设置输出消息为错误信息和错误行号
SET @strMessage=ERROR_MESSAGE()+ERROR_LINE()
RETURN
END CATCH
END
-
设置 ANSI_NULLS 和 QUOTED_IDENTIFIER:
SET ANSI_NULLS ON
和SET QUOTED_IDENTIFIER ON
是确保 SQL 语法和行为符合 ANSI 标准。
-
设置 NOCOUNT ON:
SET NOCOUNT ON
用于防止 SQL Server 返回影响的行数,这有助于避免干扰后续的 SQL 语句。
-
开始事务:
BEGIN TRANSACTION NEWEVENT
启动一个名为NEWEVENT
的事务,以便在插入过程中,如果发生错误,可以回滚。
-
插入新记录:
- 使用
INSERT INTO
语句将传入的参数插入到TBL_DA_ST_TODO_ITEMS
表中。STATUS
字段默认为'NEW'
,CREATED_DATE
字段使用当前日期时间。
- 使用
-
检查错误并提交事务:
IF @@ERROR=0
检查是否没有错误,如果没有,则使用COMMIT TRANSACTION NEWEVENT
提交事务,并设置输出消息@strMessage
为'OK'
。
-
错误处理:
BEGIN CATCH
如果在TRY
块中发生错误,将回滚事务ROLLBACK TRANSACTION NEWEVENT
,并将错误信息和错误行号设置为输出消息@strMessage
。
SELECT
USE [INTERVIEW]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[USP_TBL_DA_ST_TODO_ITEMS_SELECT]
@pSBUID int
AS
BEGIN
-- 设置 NOCOUNT ON 以防止额外的结果集干扰 SELECT 语句。
SET NOCOUNT ON;
-- 插入存储过程的语句
SELECT ITEMS.[NID]
,[SBUID]
,[EVENT_NAME]
,[EVENT_DATE]
,[EVENT_END_DATE]
,[REMARKS]
,[STATUS]
,[CREATED_DATE]
,[HEX_COLOR]
,CASE WHEN CREATED_BY IS NULL THEN 'ANONYMOUS' ELSE CREATED_BY END AS CREATED_BY
FROM INTERVIEW.[dbo].[TBL_DA_ST_TODO_ITEMS] ITEMS
LEFT JOIN TBL_DA_ST_DROPDOWN DDL
ON ITEMS.STATUS = DDL.DROPDOWN_VALUE
WHERE SBUID=CASE WHEN @pSBUID=0 THEN SBUID ELSE @pSBUID END
END
-
设置 ANSI_NULLS 和 QUOTED_IDENTIFIER:
SET ANSI_NULLS ON
和SET QUOTED_IDENTIFIER ON
是确保 SQL 语法和行为符合 ANSI 标准。
-
设置 NOCOUNT ON:
SET NOCOUNT ON
用于防止 SQL Server 返回影响的行数,这有助于避免干扰后续的 SQL 语句。
-
SELECT 语句:
- 从
INTERVIEW.dbo.TBL_DA_ST_TODO_ITEMS
表中选择记录,并根据@pSBUID
参数进行过滤。 - 选择的字段包括
NID
、SBUID
、EVENT_NAME
、EVENT_DATE
、EVENT_END_DATE
、REMARKS
、STATUS
、CREATED_DATE
、HEX_COLOR
,以及处理CREATED_BY
字段,当CREATED_BY
为 NULL 时,显示为'A
- 从