MS SQL 递归函数
/*
select *,dbo.getDeptTree(id) as DeptTree from sysdept
递归函数
*/
CREATE function getDeptTree(@NodeId int)
returns varchar(8000)
as
begin
declare @ret varchar(8000),@ParentId int,@len int
set @len = 0
set @ret = ''
select @ret=deptname+@ret,@ParentId=subid from sysdept where id=@NodeId
while @@rowcount<>0
begin
set @NodeId=@ParentId
-- set @ret = replace(@ret,'─',' ')
select @ret='|─'+@ret,@ParentId=subid from sysdept where id=@NodeId
end
return @ret
end
相关文档:
1. 说明:复制表(只复制结构,源表名:a,新表名:b)
SQL: select * into b from a where 1<>1;
2. 说明:拷贝表(拷贝数据,源表名:a,目标表名:b)
SQL: insert into b(a, b, c) select d, e, f from b;
3. 说明: ......
========第一篇=========
在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句:
select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where b.data_guid = a.data_guid)
如果表中有大量数据,但是重复数据比较少,那么 ......
2000发布与订阅
预备工作
1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于administrator组的登陆windows的用户(SynUser)
2.在发布服务器上,新建一个共享目录 ......
备份
DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR,getdate(),120)
set @strPath='hq'+rtrim(left(replace(@strPath,'-',''),8))
set @strPath = 'D:\sqlback\mydb\' + @strPath + '.bak'
BACKUP DATABASE [mydb] TO DISK = @strPath WITH NOFORMAT, NOINIT, NAME = N'mydb-完整 数据库 备份', ......
--查询当前连接的实例名
select @@servername--察看任何数据库属性
sp_helpdb master
--设置单用户模式,同时立即断开所有用户
alter database Northwind set single_user with rollback immediate--恢复正常
alter database Northwind set multi_user
--察看数据库属性
sp_helpdb--察看数据库恢复模式
selec ......