(精)如何利用T_SQL实现数据库备份与还原处理之一--(如何利用sql语句,得到数据库文件目录)

 /*1.--得到数据库的文件目录
 @dbname 指定要取得目录的数据库名
   如果指定的数据不存在,返回安装SQL时设置的默认数据目录
   如果指定NULL,则返回默认的SQL备份目录名*/
/*--调用示例
 select 数据库文件目录=dbo.f_getdbpath('tempdb')
  ,[默认SQL SERVER数据目录]=dbo.f_getdbpath('')
  ,[默认SQL SERVER备份目录]=dbo.f_getdbpath(null)
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getdbpath]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_getdbpath]
GO
定义函数:
create function f_getdbpath(@dbname sysname)
returns nvarchar(260)
as
begin
 declare @re nvarchar(260)
 if @dbname is null or db_id(@dbname) is null
  select @re=rtrim(reverse(filename)) from master..sysdatabases where name='master'
 else
  select @re=rtrim(reverse(filename)) from master..sysdatabases where name=@dbname

 if @dbname is null
  set @re=reverse(substring(@re,charindex('/',@re)+5,260))+'BACKUP'
 else
  set @re=reverse(substring(@re,charindex('/',@re),260))
 return(@re)
end
go

简单描述:
1.需要返回值nvarchar
2.上述用到的sql函数:
declare:定义sql变量;
db_id:返回数据库的唯一ID;
rtrim():去除空格;
reverse:反转字符,例如:原本是ABC,reverse(ABC)=CBA;
substring:获取字符串的某部分的值;
charindex:定义特别字符的开始位;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值