T-SQL存储过程嵌套问题
在一个存储过程里,如果把一些特定的处理,像PL/SQL里一样,写成内置的存储过程可以吗?该如何写?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Fsolsh)Andy
-- Create date: 2007/09/30
-- =============================================
ALTER PROCEDURE [dbo].[FPN02B00]
AS
-----------------------BEGIIN-----------------------
PROCEDURE PROCE1
AS
BEGIN
SELECT
@KANA_NAME1 = ISNULL(KN_KANA1, 'here ') ,
@KANA_NAME1 = ISNULL(KN_KANA2, 'here ')
FROM
DBO.M_X010
WHERE
CD_KEY = @KB_KEY_054
AND KB_KEY = @KB_BANK_HURIKOMI
END
-----------------------END-----------------------
BEGIN
DO SOMETHING
END
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
如上所示是整个存储过程的结构,PROCEDURE [dbo].[FPN02B00]的程序体忽略,PROCEDURE PROCE1这一块该怎么写?
------解决方案--------------------写在外面
------解决方案--------------------方法1:
单独创建存储过程PROCE1,@KANA_NAME1和@KANA_NAME2为输出参数,@KB_KEY_054和@KB_BANK_HURIKOMI为输入参数。
存储过程FPN02B00内部再调用PROCE1。
方法2:
将PROCE1的功能,直接在FPN02B00内部写。