CREATE PROCEDURE [cp_backup_database]
@cpathname varchar(500)
AS
IF EXISTS(select * from master.dbo.sysdevices where name='gtinfo_bk')
BEGIN
EXEC sp_dropdevice 'gtinfo_bk','DELFILE'
END
EXEC sp_addumpdevice 'disk', 'gtinfo_bk',@cpathname
BACKUP DATABASE gtinfo TO gtinfo_bk
--导入调用示例
exec file2table 'zj','','','xzkh_财务..凭证库','c:\zj.txt',0
*/
if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
drop procedure File2Table
go
create procedure File2Table
@servername varchar(200) --服务器名
,@username varchar(200) --用户名,如果用NT验证方式,则为空''
,@password varchar(200) --密码
,@tbname varchar(500) --表名,必须指定数据库缀,即用 数据库名.dob.表中的形式
,@filename varchar(1000) --导入/导出文件名,带路径
,@isout bit --1为导出,0为导入
as
declare @sql varchar(8000)
set @sql='bcp '+@tbname
+case when @isout=1 then ' out ' else ' in ' end
+' "'+@filename+'" /w'
+' /S '+@servername
+case when isnull(@username,'')='' then '' else ' /U '+@username end
+' /P '+isnull(@password,'')
exec master..xp_cmdshell @sql
go
指定标识列的值存在于导入文件中。如果没有指定 KEEPIDENTITY,在导入的数据文件中此列的标识值将被忽略,并且 SQL Server 将根据表创建时指定的种子值和增量值自动赋给一个唯一的值。假如数据文件不含该表或视图中的标识列,使用一个格式文件来指定在导入数据时,表或视图中的标识列应被忽略;SQL Server 自动为此列赋予唯一的值。有关详细信息,请参见 DBCC CHECKIDENT。