求解决方案(SQLSERVER)中存储过程
现在有一张部门表(SYS_DEPT)结构如下:
DEPT_ID(部门ID) DEPT_NAME(部门名称) DEPT_PARENT_ID(部门父节点名称)
要实现的内容为:
根据上面这张部门表中的任意一个DEPT_ID(部门ID)查询出该部门以及该部门下所有的部门信息。
如:
1 部门名称1 0
2 部门名称2 1
3 部门名称3 1
4 部门名称4 3
现在要根据“部门名称1”的ID查询出下面所有的部门信息。即:查询结果为上面所有部门信息。
在ORACLE中直接用 SELECT * from DEPT START WITH DEPT_ID=1 CONNECT BY PRIOR DEPT_ID=DEPT_PARENT_ID就可以做到了。
但在SQLSERVER中小弟不知道如何实现。
请各位大虾给点意见。好像是要写个存储过程。希望各位大虾给点支持!感谢!
希望各位大虾多多帮忙啊!
SQL code:
--生成测试数据
create table BOM(ID INT,PID INT,MSG VARCHAR(1000))
insert into BOM select 1,0,NULL
insert into BOM select 2,1,NULL
insert into BOM select 3,1,NULL
insert into BOM select 4,2,NULL
insert into BOM select 5,3,NULL
insert into BOM select 6,5,NULL
insert into BOM select 7,6,NULL
go
--创建用户定义函数
create function f_getChild(@ID VARCHAR(10))
returns @t table(ID VARCHAR(10),PID VARCHAR(10),Level INT)
as
begin
declare @i int,@ret varchar(8000)
set @i = 1
insert into @t select ID,PID,@i from BO
相关问答:
我的数据库是简体sqlserver2000 ,我想在繁体access下连接,通过odbc是可以了,但在access下出现打开的表全中"#已删除"
不知道要怎么操作才可以用ACCESS繁体连接简体sqlserver2000.谢谢!!!
大家都 ......
写了一个用C语言操作sqlserver数据库的程序,在我自己的计算机上运行没问题。但到另一台机器上运行时,SQLConnect函数连接数据库失败,仔细检查设置都没有发现问题,但该机器的操作系统是Windows Server 2003 Enterp ......
大家有没有 存储过程分页的例子,共享一下,谢谢!!!
http://wyf.javaeye.com/blog/462396
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*--实现分页的通用存储过程
......
需要使用SQL Server2000或2005
需要设计数据有效验证,防止录入不合法数据
需要设计存储过程或自定义函数完成数据的录入\修改\删除\统计\查询
数据库大部分表我已经建立,只是辅助性的小表建立的还不全
......
数据库是安装VS2005自带的那个SQLServer2005。图形管理工具是—>SQL Server Management Studio Express。
我先是用Windows身份验证模式进去。 点—>"安全性" 然后右键"登录名 ......