后缀为.dat的文件该如何导入到ms sqlserver中阿?谢谢 .dat 是媒体格式是一般vcd下的格式怎么能导入数据库,.bak.db等文件才是是数据文件. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关键不知道dat是什么格式,你可以试试改扩展名为mdb,xls,txt等等,然后在企业管理器内用DTS向导导入 .dat格式的文件不少啊,比如 VCD 的数据文件,早期的 SQL 数据库文件等如果你是要分析文件内容再导入,则应该首先说清楚你的 .dat文件到底是什么格式的如果你是把文件做为二进制文件处理,直接导入image字段,则可以用我下面提供的存储过程 /*--利用 textcopy.exe文件实现在数据库中存储/读取文件 需要textcopy.exe文件,该文件可以在sql 7.0安装光盘找到--转贴自大力--*/--建立存取处理的存储过程if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_textcopy]GOCREATE PROCEDURE sp_textcopy@srvname varchar (30), --服务器名@login varchar (30), --用户名@password varchar (30), --密码@dbname varchar (30), --数据库名@tbname varchar (30), --表名@colname varchar (30), --存储文件的字段名@filename varchar (30), --要存取的文件名@whereclause varchar (40), --条件@direction char(1) --I 为存储到数据库,O 从数据库中读出成文件AS DECLARE @exec_str varchar (255) SELECT @exec_str = 'textcopy /S"' + @srvname + '" /U ' + @login + ' /P ' + @password + ' /D ' + @dbname + ' /T ' + @tbname + ' /C ' + @colname + ' /W "' + @whereclause + '" /F "' + @filename + '" /' + @direction EXEC master..xp_cmdshell @exec_str go--调用示例:--1.创建示例表和初始化数据create table tb(id int,img image)insert tb select 1,0x union all select 2,0xgo--2.将文件保存到数据库中declare @srv varchar(255),@db sysname,@tb sysname,@col sysnameselect @srv=@@servername --服务器名 ,@db=db_name() --数据库名 ,@tb='tb' --表名 ,@col='img' --列名sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','I' --保存到id=1的记录中,注意条件是:id=1sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','I' --保存到id=2的记录中,注意条件是:id=2--3.从数据库中读出保存为文件sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','O' --读出id=1的记录,注意条件是:id=1sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','O' --读出id=2的记录,注意条件是:id=2--删除测试环境drop table tbif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_textcopy] 对不起啊,我很少用ms sql的,麻烦大家乐 请问这个insert要如何写 如此查询怎么做 有关联赛sql实现,高分请教高手 强制分离再强制中断连接的SQL语句? 统计单位,性别,数量,箱数的复杂查询问题!! 表行转列问题! 我的MSDE安装不了. SQL 2005 中未将对象引用设置到对象的实例。 (SQLEditors) 请教,我如何做这个更新? 请问MySQL和Interbase两者比较哪个更好? 进行SQL Server数据库操作时,如何直接捕获到SQL Server错误消息代码 SQL语句写法,详情请进。
如果你是把文件做为二进制文件处理,直接导入image字段,则可以用我下面提供的存储过程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_textcopy]
GOCREATE PROCEDURE sp_textcopy
@srvname varchar (30), --服务器名
@login varchar (30), --用户名
@password varchar (30), --密码
@dbname varchar (30), --数据库名
@tbname varchar (30), --表名
@colname varchar (30), --存储文件的字段名
@filename varchar (30), --要存取的文件名
@whereclause varchar (40), --条件
@direction char(1) --I 为存储到数据库,O 从数据库中读出成文件
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S"' + @srvname +
'" /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F "' + @filename +
'" /' + @direction
EXEC master..xp_cmdshell @exec_str
go--调用示例:
--1.创建示例表和初始化数据
create table tb(id int,img image)
insert tb
select 1,0x
union all select 2,0x
go--2.将文件保存到数据库中
declare @srv varchar(255),@db sysname,@tb sysname,@col sysname
select @srv=@@servername --服务器名
,@db=db_name() --数据库名
,@tb='tb' --表名
,@col='img' --列名
sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','I' --保存到id=1的记录中,注意条件是:id=1
sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','I' --保存到id=2的记录中,注意条件是:id=2--3.从数据库中读出保存为文件
sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','O' --读出id=1的记录,注意条件是:id=1
sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','O' --读出id=2的记录,注意条件是:id=2--删除测试环境
drop table tb
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_textcopy]