一下是网友帮忙写的
--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID VARchar(10))
RETURNS @t_Level TABLE(ID VARchar(10),Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.USRMA001,@Level
FROM USRMA a,@t_Level b --USRMA是写死了的
WHERE a.USRMA004=b.ID --USRMA004是写死了的
AND b.Level=@Level-1
END
RETURN
END---
我想改进一下 把这个USRMA这个表名,USRMA004字段作为参数传递进去,
不知道怎么写才好?因为我发现如果直接写成类似(@ID VARchar(10))是行不通的 似乎要调用exec这个函数 但不知道怎么改进
请帮忙谢谢了
--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID VARchar(10))
RETURNS @t_Level TABLE(ID VARchar(10),Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.USRMA001,@Level
FROM USRMA a,@t_Level b --USRMA是写死了的
WHERE a.USRMA004=b.ID --USRMA004是写死了的
AND b.Level=@Level-1
END
RETURN
END---
我想改进一下 把这个USRMA这个表名,USRMA004字段作为参数传递进去,
不知道怎么写才好?因为我发现如果直接写成类似(@ID VARchar(10))是行不通的 似乎要调用exec这个函数 但不知道怎么改进
请帮忙谢谢了
解决方案 »
- 紧急求助两个SQL删除语句
- SQL2005能不能实现 禁止远程用登录名通过 数据库管理器 来登录对数据库操作,但网站远程链接数据库不能受影响
- 存储过程的问题
- 怪事.有一个存储过程的运行的速度突然变慢了
- 请教大师,一个存储过程的写法
- ---如何访问局域网上的另一个sqlserver中数据库的一个表呢?请大家帮忙看看。---
- 怎样用DataGrid模拟月报表???
- SQL Server可不可以自定义聚合函数?
- 为什么我的操作系统不能装SQL2000,在线等待!!!!!!!
- 如何隐藏vfp系统表单?
- 老师们来帮忙啊,我的数据库名称带个 点 到时一个函数不能运行!急!
- 两台sql SRV 2000如何同步更新数据?
CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))
INSERT tb SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
GO--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID char(3))
RETURNS @t_Level TABLE(ID char(3),Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
RETURN
END
GO--调用函数查询002及其所有子节点
SELECT a.*
FROM tb a,f_Cid('002') b
WHERE a.ID=b.ID
/*--结果
ID PID Name
------ ------- ----------
002 001 烟台市
004 002 招远市
--*/