USE [Test]
GO
/****** Object: StoredProcedure [dbo].[sp_test] Script. Date: 06/20/2012 22:23:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[sp_test]
@level int
AS
declare @i int
declare @j int
IF (@level <= 0)
BEGIN
PRINT 'Illegal Parameter Value. Must be 0 through 31'
RETURN - 1
END
IF (@level = 1)
BEGIN
PRINT 1
END
ELSE
BEGIN
SELECT @j = @level - 1
-- recursively call itself
EXEC sp_test @j
SET @i = 1
WHILE (@i <= @level)
BEGIN
PRINT @level
SET @i = @i + 1
END
END
--EXEC sp_test 3
----------------------------------------------------------------------------------------
WITH RPL ( NAME, M , S ) AS
(
SELECT 'PID', 10 , 1
UNION ALL
SELECT RPL.NAME , RPL.M, RPL.S + 1 FROM RPL
WHERE RPL.S < RPL.M
)
SELECT NAME, M , S
FROM RPL
ORDER BY NAME, M , S
GO
/****** Object: StoredProcedure [dbo].[sp_test] Script. Date: 06/20/2012 22:23:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[sp_test]
@level int
AS
declare @i int
declare @j int
IF (@level <= 0)
BEGIN
PRINT 'Illegal Parameter Value. Must be 0 through 31'
RETURN - 1
END
IF (@level = 1)
BEGIN
PRINT 1
END
ELSE
BEGIN
SELECT @j = @level - 1
-- recursively call itself
EXEC sp_test @j
SET @i = 1
WHILE (@i <= @level)
BEGIN
PRINT @level
SET @i = @i + 1
END
END
--EXEC sp_test 3
----------------------------------------------------------------------------------------
WITH RPL ( NAME, M , S ) AS
(
SELECT 'PID', 10 , 1
UNION ALL
SELECT RPL.NAME , RPL.M, RPL.S + 1 FROM RPL
WHERE RPL.S < RPL.M
)
SELECT NAME, M , S
FROM RPL
ORDER BY NAME, M , S
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7899089/viewspace-733518/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7899089/viewspace-733518/