SQL SERVER2005数据库复制

SQL SERVER2005数据库复制
SQL SERVER2005数据库复制

SQL SERVER 2005 数据库复制

一.复制发布模型概述

复制使用出版业术语表示复制拓扑中的组件,其中有发布服务器、分发服务器、订阅服务器、发布、项目和订阅。

发布服务器

发布服务器是一种数据库实例,它通过复制向其他位置提供数据。发布服务器可以有一个或多个发布,每个发布定义一组要复制的具有逻辑关系的对象和数据。

分发服务器

分发服务器也是一种数据库实例,它起着存储区的作用,用于复制与一个或多个发布服务器相关联的特定数据。每个发布服务器都与分发服务器中的单个数据库(称作分发数据库)相关联。分发数据库存储复制状态数据和有关发布的元数据,并且在某些情况下为从发布服务器向订阅服务器移动的数据起着排队的作用。在很多情况下,一个数据库服务器实例充当发布服务器和分发服务器两个角色。这称为“本地分发服务器”。当发布服务器和分发服务器按各自的数据库服务器实例配置时,把分发服务器称为“远程分发服务器”。

订阅服务器

订阅服务器是接收复制数据的数据库实例。订阅服务器可以接收来自多个发布服务器和发布的数据。根据所选的复制类型,订阅服务器还可以将数据更改传递回发布服务器或者将数据重新发布到其他订阅服务器。

项目

项目用于标识发布中包含的数据库对象。一次发布可以包含不同类型的项目,包括表、视图、存储过程和其他对象。当把表作为项目发布时,可以用筛选器限制发送到订阅服务器的数据的列和行。

发布

发布是一个数据库中的一个或多个项目的集合。将多个项目分组成一个发布,使得更便于指定一组作为一个单元复制的、具有逻辑关系的数据库对象和数据。

订阅

订阅是把发布副本传递到订阅服务器的请求。订阅定义将接收的发布和接收的时间、地点。有两种类型的订阅:推送订阅和请求订阅。

二.选择复制类型

Microsoft SQL Server 2005 提供了下列可在分布式应用程序中使用的复制类型:事务性复制,合并复制,快照复制。

事务性复制通常用于服务器到服务器环境中,在以下各种情况下适合采用事务性复制。

1.希望发生增量更改时将其传播到订阅服务器。

2.从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时

间较短。

3.应用程序需要访问中间数据状态。例如某一行更改了5次,事务复制将允许应用程序响

应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。

4.发布服务器有大量的插入、更改、删除活动。

5.当必须在数据被修改时对其进行复制,以及发布服务器和订阅服务器通过网络可靠或经

常地连接在一起时,使用事务复制。

6.默认情况下,事务发布的订阅服务器应视为只读,所以更改将不会传播回发布服务器。在一般情况下,如果发布服务器和订阅服务器都对数据进行了更改,那么以发布服务器的事务为准,覆盖订阅服务器对数据更改。

上海120的拓扑结构是:上海120指挥调度部分被认定为G3级系统,办公部分被认定为G2级系统。要求G3系统数据库服务器要实时把数据库数据变化更新到G2系统数据库,并且G3系统可向G2系统直接写入数据,G2系统可以访问G3系统,但不能向G3系统写入数据。

根据上海120的情况,使用“事务性复制”是最合理的。

事务复制的工作机制

事务性复制由 SQL Server 快照代理、日志读取器代理和分发代理实现。快照代理准备快照文件(其中包含了已发布表和数据库对象的架构和数据),然后将这些文件存储在快照文件夹中,并在分发服务器中的分发数据库中记录同步作业。

日志读取器代理监视为事务性复制配置的每个数据库的事务日志,并将标记为要复制的事务从事务日志复制到分发数据库中,分发数据库的作用相当于一个可靠的存储-转发队列。分发代理将快照文件夹中的初始快照文件和分发数据库表中的事务复制到订阅服务器中。

在发布服务器中所做的增量更改根据分发代理的计划流向订阅服务器,分发代理可以连续运行以尽量减少滞后时间,也可以按预定的时间间隔运行。由于数据更改必须在发布服务器中进行(使用事务性复制时,无需指定立即更新或排队更新选项),从而避免了更新冲突。最后,所有订阅服务器都将获得与发布服务器相同的值。如果事务性复制使用了立即更新或排队更新选项,更新可以在订阅服务器中进行,对于排队更新,可能会发生冲突。

三.创建复制前需要做的工作

在SQL Server 2005里设置和使用数据库复制之前,应先检查相关的几台SQL Server服务器下面几点是否满足:

发布服务器是调度连接的数据库服务器(需要先做数据库还原建立数据库)

分发服务器起着存储区的作用,用于复制与一个或多个发布服务器相关联的特定数据

订阅服务器是备份数据库服务器(和发布服务器一样需要先做数据库还原建立数据库,数据库要和发布服务器的数据库一样。)

1、MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的

(.\administrator用户也是可以的)

如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误:

进程未能连接到Distributor '@Server name'

(如果您的服务器已经用了SQL Server全文检索服务, 请不要修改MSSQLserver和Sqlserveragent服务的local启动。

会造成全文检索服务不能用。请换另外一台机器来做SQL Server 2005里复制中的分发服务器。)

修改服务启动的登录用户,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。

数据库服务器做为发布服务器,MSSQLserver和Sqlserveragent服务要以本地超级管理员用户登录,操作如下:

(1)在我的电脑上右键“管理”进入服务,查找到“SQL Server (MSSQLSERVER)”服务,如下图:

右键“属性”

“启动类型”要选择“自动”,点击“登录”如下

点选“浏览”添加adminadmin超级管理员。(adminadmin新建的超级管理员,因为Administrator需要被禁用。)选择好用户后,填写adminadmin本地用户的密码,

然后“应用”即可。

点击“确定”。

(2)在我的电脑上右键“管理”进入服务,查找到“SQL Server Agent (MSSQLSERVER)”服务,如下图:

右键“属性”

启动类型选择“自动”

输入adminadmin本地密码点击应用。

这时,我们对这两个服务进行重新启动。

先重启“SQL Server (MSSQLSERVER)”再重启“SQL Server Agent (MSSQLSERVER)”。

分发服务器和订阅服务器同样要按以上操作。

2、检查相关的几台SQL Server服务器是否改过名称

(需要srvid=0的本地机器上计算机名称srvname和datasource一样)

判断方法:SQL Server服务器完整的计算机名称和 sysservers 表中的字段srvid=0 的srvname和datasource 是否一致。

在查询分析器里执行:

use master

select srvid,srvname,datasource from sysservers

如果没有srvid=0或者srvid=0(也就是本机器)但“服务器完整的计算机名称”和 srvname和datasource不一样, 需要按如下方法修改:

----------------------------------------------------------------------------- USE master

GO

-- 设置两个变量

DECLARE @serverproperty_servername varchar(100),

@servername varchar(100)

-- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息

SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))

-- 返回运行 Microsoft SQL Server 的本地服务器名称

SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)

-- 显示获取的这两个参数

select @serverproperty_servername,@servername

--如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的

--删除错误的服务器名

EXEC sp_dropserver @server=@servername

--添加正确的服务器名

EXEC sp_addserver @server=@serverproperty_servername, @local='local'

------------------------------------------------------------------------------- 修改这项参数,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。

这样一来就不会在创建复制的过程中出现18482、18483错误了。

3、检查SQL Server Management studio里面相关的几台SQL Server注册名是否和上面第二点里介绍的srvname一样

不能用IP地址的注册名。

(我们可以删掉IP地址的注册,新建以SQL Server管理员级别的用户注册的服务器名)

这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。

4、检查相关的几台SQL Server服务器网络是否能够正常访问

如果ping主机IP地址可以,但ping主机名不通的时候,需要在

winnt\system32\drivers\etc\hosts (WIN2000)

windows\system32\drivers\etc\hosts (WIN2003)

文件里写入数据库服务器IP地址和主机名的对应关系。

例如:

127.0.0.1 localhost

192.168.0.35 or

acledb oracledb

192.168.0.65 fengyu02 fengyu02

202.84.10.193 bj_db bj_db

或者在SQL Server客户端网络实用工具里建立别名,例如:

5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复)(一般不需要操作)

sp_addextendedproc ‘xp_regenumvalues’,@dllname =’xpstar.dll’

go

sp_addextendedproc ‘xp_regdeletevalue’,@dllname =’xpstar.dll’

go

sp_addextendedproc ‘xp_regdeletekey’,@dllname =’xpstar.dll’

go

sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’

6、在分发服务器创建文件夹huhu,设置为共享。

文件夹名称自定义,不一定叫huhu。

7、设置SQL SERVER 身份验证,解决连接时的权限问题(发布、订阅服务器均设置)

步骤为:对象资源管理器----右击SQL实例-----属性----安全性----服务器身份验证------选“SQL Server和WINDOWS“,然后点确定

这个在安装SQL Server 2005时,我们已经设置过,如果不是这种服务器身份验证,按照上图所示修改。

8、开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。

选择“服务和连接的外围应用配置器”

选择“远程连接”

这里要选择“本地连接和远程连接”—“仅使用TCP/IP”

之后打开“SQL Server Configuration Manager”如图:

选择“客户端协议”---“TCP/IP”----属性查看

状态如图所示即可。

9、发布服务器和订阅服务器互相注册

步骤如下:视图----单击以注册服务器----右键数据库引擎----新建服务器注册-----填写要注册的远程服务器名称------身份验证选“SQL Server验证“-----用户名(sa) 密码------创建组(也可不建)-----完成。

10、所有用于发布的表都要有主键。

四、建立复制

一在G3系统配置发布和分发;在G2系统配置订阅

1、配置分发服务器(没有单独的服务器可以和订阅再一台服务器上)

在SQL ServerManagement Studio 中连接到分发服务器gis-server,需要注意的是连接服务器时需要输入“服务器完整的计算机名”

单击【连接】进入如下界面,右键选择“复制”

单击【下一步】

选择第一项->【下一步】

填写快照文件夹的路径->【下一步】

单击【下一步】

单击【添加】按钮->选择SQL SERVER 服务器->【在SQL ServerManagement Studio 中连接到发布服务器db-server】->单击【连接】按钮->,如下图操作。

服务器名称为发布服务器

勾选如上所示,点击【下一步】

输入发布服务器连接分发服务器的密码(注:该密码不是管理员密码,也不是SQL连接密码,这里随意设置,只要符合域的密码要求,这里选择密码为:ABCabc120. 如果密码不够复杂,不符合密码策略,则无法成功。当然还要记住密码。)->【下一步】

SQLServer(多语句表值函数代码)

SQLServer(多语句表值函数代码) 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE FUNCTION [dbo].[ufnGetContactInformation](@ContactID int) RETURNS @retContactInformation TABLE ( -- Columns returned by the function [ContactID] int PRIMARY KEY NOT NULL, [FirstName] [nvarchar](50) NULL, [LastName] [nvarchar](50) NULL, [JobTitle] [nvarchar](50) NULL, [ContactType] [nvarchar](50) NULL ) AS -- Returns the first name, last name, job title and contact type for the specified contact. BEGIN

DECLARE @FirstName [nvarchar](50), @LastName [nvarchar](50), @JobTitle [nvarchar](50), @ContactType [nvarchar](50); -- Get common contact information SELECT @ContactID = ContactID, @FirstName = FirstName, @LastName = LastName FROM [Person].[Contact] WHERE [ContactID] = @ContactID; SET @JobTitle = CASE -- Check for employee WHEN EXISTS(SELECT * FROM [HumanResources].[Employee] e WHERE e.[ContactID] = @ContactID) THEN (SELECT [Title] FROM [HumanResources].[Employee] WHERE [ContactID] = @ContactID) -- Check for vendor

如何导入导出MySQL数据库

如何导入导出MySQL数据库 1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入; 2) 直接拷贝数据库目录和文件。 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。 所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。 2. 方法一SQL脚本形式 操作步骤如下: 2.1. 导出SQL脚本 在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL 脚本。 2.1.1 用phpMyAdmin工具 导出选项中,选择导出“结构”和“数据”,不要添加“Drop DATABASE”和“Drop TABLE”选项。 选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。 将导出的SQL文件保存下来。 2.1.2 用mysqldump命令行 命令格式 mysqldump -u用户名-p 数据库名> 数据库名.sql 范例: mysqldump -uroot -p abc > abc.sql (导出数据库abc到abc.sql文件) 提示输入密码时,输入该数据库用户名的密码。 2.2. 创建空的数据库 通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。 2.3. 将SQL脚本导入执行 同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。 2.3.1 用phpMyAdmin工具 从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。 在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。 注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件 比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。 gzip使用方法: # gzip xxxxx.sql

SQLSERVER操作命令

SQLSERVER数据库操作 ******操作前,请确定SQL的服务已经开启******** 一:登录进入sql数据库 1、开始---所有程序---Microsoft SQL Server 2005---SQL Server Management Studio Express 2、此时出现“连接到服务器”的对话框, “服务器名称”设置为SQL数据库所在机器的IP地址 “身份验证”设置为SQL Server身份验证或者Windows 身份验证 填写登录名和密码后,点击“连接”按钮,即可进入到SQL数据库操作界面。 二:新建数据库 登录进去后,右击“数据库”,选择—“新建数据库” 设置数据库名称,在下面的选项卡中还可以设置数据库的初始大小,自动增长,路径。 点击确定,一个数据库就建好了。 三:如何备份的数据库文件。 登录进入后,右击相应的需要备份数据库----选择“任务” 目标下的备份到,点击“添加”按钮可以设置备份数据库保存的路径。 四:如何还原备份的数据库文件。(以本地机器为例子) 1、设置服务器名称,点击右边的下拉框的三角,选择“浏览更多…”。 此时出现查找服务器对话框,选择“本地服务器”---点开“数据库引擎”前面 的三角---选中出现的服务器名称—确定。 (注:可以在“网络服务器”选项卡中设置网络服务器) 2、设置身份验证,选择为“windows身份验证” 3、点击连接按钮,进入数据库管理页面 4、右击“数据库”,选择“还原数据库”,出现还原数据库的对话框 还原的目标----目标数据库,这里设置数据库的名字 还原的源----选择“源设备”,在弹出的对话框中点击“添加”按钮,找到所备 份的数据库文件,确定。 5、此时,在还原数据库对话框中会出现所还原的数据库的信息。在前面选中所需还 原的数据库。确定。 6、为刚刚还原的数据库设置相应的用户。 a点开“安全性”---右击“登录名”---新建登录名 b 设置登录名(假如为admin),并设置为SQL Server身份验证,输入密码,去除 “强制实施密码策略”前的勾。 C 找到导入的数据库,右击此数据库----选择“属性”,在选择页中,点击“文件” 设置所有者,点击右边的按钮,选择“浏览”,找到相应的用户(如admin)。确 定。。 7、此时重新以admin的身份进入,就可操作相应的数据库。

用VB将一个文本文件中的数据导入到Access的某个数据表中

课程设计任务书 一、课程设计时间 2008~09第2学期第15~16周,共计2周,40学时。 二、课程设计内容 将一个文本文件(file30_数据的导入.txt)中的数据导入到Access的某个数据表中。 提示: ①先在Access数据库中创建出相应的表。 ②一方面,用ADO数据控件打开表;另一方面用文件读取术读取给定的文本文件中的内容,并添加到数据库表中。 三、课程设计要求 程序质量: ?贯彻事件驱动的程序设计思想。 ?用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: ?课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提 供的模板。 四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语

目录 需求分析 (4) 设计分析 (5) 关键技术 (6) 总结 (10) 完整的源程序 (11) 参考文献 (11)

需求分析 数据的导入是将文本文件中的数据读取到数据库指定的表中。由于文本文件中的数据不方便统计、管理,通常要将其导入数据库中,所以设计一个程序直接实现数据的导入能节省大量的时间,提升工作效率。 要求:在Access中创建chanpin 表,用来储存文本文件中的数据。此表的结构应如下定义:id,name,price,store。

设计分析 (1)基本原理:建立程序设计与数据库的连接,用input语句读取文本文件,用insert语句将数据 添加到数据库中。 (2)总体流程设计:

关键技术 1建立与数据库的连接代码如下 Option Explicit Option Base 1 Dim cnn As ADODB.Connection‘声明变量作为连接对象 Private Sub Form_Load() Set cnn = New ADODB.Connection cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=sjddr.mdb"‘连接数据源 cnn.ConnectionTimeout = 30 cnn.Open End Sub 2读取数据是用input语句将文本文件的数据读取出来在窗体中显示出来 Select<字段名表>From<表名>Where<条件> 程序段如下: Private Sub Command1_Click() Dim id$, name$, price$, store$ ‘声明变量属性 Open "file30_数据的导入.txt" For Input As #1‘打开要输入的文件 Do While Not EOF(1) ‘循环之文件尾 Input #1, id, name, price, store ‘将数据读入到四个变量中 Print id, name, price, store ‘输出数据 Loop

恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库

恢复数据库—把.frm,.myd,myi转换为.sql导入数据库 以前的blog服务器瘫痪后终于从客服那里拿回了数据,但是空间商给备份的数据库是一堆.frm,.myd,.myi文件,而现在恢复数据库要求导入.sql文件,我对数据库一窍不通,这可咋整。没办法,又得求助Google,倒腾…磨叽…倒腾……终于给解决了。 先说说这几种文件是干什么的,*.frm是描述了表的结构,*.myd保存了表的数据记录,*.myi则是表的索引。 现在将.frm,.myd,myi转换为.sql有两种方法: 1、把这些乱七八糟的文件一并复制到你的数据库的data下的数据库文件夹,直接就可以使用,无需转换为sql格式。前提是mysql的版本一致,字体一致。此方法简单快捷但不是没个人都能做到。其实根本就无法做到,除非你是在本地测试或者你是个人独霸一台服务器。像我这种用虚拟主机的,空间商一般是不会把数据库目录都给你让你去瞎折腾的,所以此方法基本无用,弃之。 2、在本地安装MySQL数据库,将.frm,.myd,myi转换为.sql,再导入即可。这种方法当然会麻烦一些了,首先得会安装MySQL才行。反正我不大会装,设置也不懂,干脆把安装MySQL的方法也贴在这儿吧,图我就不贴了,只贴文字和每一步要选择的选项,安装的MySQL为当前最新版本5.1.44。 安装MySQL: MySQL请自行下载,大概一百零几兆,下载后双击打开,出来欢迎安装界面,点Next,出来安装选项,有三种:Typical、Complete、Custom,默认是Typical,建议改成Custom,因为Typical模式不允许改变安装路径,只能安装在C盘(我介绍的就是Custom的安装方法)。点Next,到这一步需要选择要安装的组件和安装路径,组件就用默认的,安装路径自己选择,在根目录下最好,因为后面要用到Dos命令,这样方便。注意:安装mysql的路径中,不能含有中文!一切就绪后点Install,安装很快,完成后是介绍MySQL公司的界面,Next,Next,之后是Setup Wizard界面。帮助用户设置MySQL的,别以为装完了就没事了。这里有两个复选框,Configure the MySQL Server Now和Register the MySQL Server Now,把第二个对勾取消掉,它是让你注册的,没什么用。点Finish,下面开始配置MySQL。 配置MySQL: 又是欢迎界面,Next,看到两个选项,选择Detailed Configuration,点Next继续,下面这个选项是选择mysql应用于何种类型,第一种是开发服务器,将只用尽量少的内存,第二种是普通WEB服务器,将使用中等数量内存,最后一种是这台服务器上面只跑mysql数据库,将占用全部的内存,我选择第二种,你可根据自己的需求,选择其他选项,点Next继续,下面是选择数据库用途,第一种是多功能用途,将把数据库优化成很好的innodb存储类型和高效率的myisam存储类型,第二种是只用于事务处理类型,最好的优化innodb,但同时也支持myisam,最后一种是非事务处理类型,适合于简单的应用,只有不支持事务的myisam类型是被支持的。一般选择第一种多功能的,Next,下面是选择InnodDB的数据存放位置,一般默认好了,不需要改动,Next继续,下面是选择mysql允许的最大连接数,第一种是最大20个连接并发数,第二种是最大500个并发连接数,最后一种是自定义,你可以根据自己的需要选择,我是直接Next下一步,下面是选择数据库监听的端口,一般

连接SQLServer2008数据库的方法

连接SQLServer2008数据库的方法 一、设置SQLServer2008: SQL server 2008 1433端口开启解决方案 查看电脑开放端口命令为:netstat -an SQL Server 2008一般默认的端口为 1433 ,但有时会遇到无法连接端口1433的问题,检查端口1433是否启用的方法为: 开始–>输入cmd –>回车–>telnet localhost 1433->回车出现黑屏,表示本机连接端口1433成功。 否则按照以下顺序进行配置: (1)关闭数据库引擎 打开配置管理器,找到 SQL Server(SQEXPRESS),右键单击,选择停止,即可停止数据库引擎

(2) .配置服务器端和客户端的TCP/IP协议: 在SQL Server网络配置中选择SQLEXPRESS的协议,选择TCP/IP ,右键单击,选择属性 选择IP 地址选项卡 把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是" 把“IP地址”下“IPALL”的端口改为“1433”。

(3)SQL Native Client 10.0 配置->客户端协议->TCP/IP (4).开启数据库引擎

这样就开启了1433的端口了 先停止SQLServer2008服务。 1.启用1433端口 S1:执行“配置工具”下的“SQL Server配置管理器”。打开如下窗口: S2:右击“SQL Server网络配置”右边的“TCP/IP”,从快捷菜单中选择“属性”,打开下图所示窗口

2.设置登录方式(使用SQL Server登录方式,而不是Windows方式) 打开“SQL Server Management Studio”,打开如下图所示快捷菜单,选择“属性”

SQL语句导入导出大全

SQL语句导入导出大全[收集] 正巧这两天要用到这个,上网找到一个,回来自己检测一下: /******* 导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S"GNETDA TA/GNETDA TA" -U"sa" -P""' /*********** 导入Excel SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /*动态文件名 declare @fn varchar(20),@s varchar(1000) set @fn = 'c:\test.xls' set @s ='''Microsoft.Jet.OLEDB.4.0'', ''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0''' set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$' exec(@s) */ SELECT cast(cast(科目编号as numeric(10,2)) as nvarchar(255))+'' 转换后的别名FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /********************** EXCEL导到远程SQL insert OPENDA TASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名(列名1,列名2) SELECT 列名1,列名2 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /** 导入文本文件 EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -

MySQL导入sql 文件的5大步骤

以下的文章主要介绍的是MySQL导入sql 文件,即MySQL数据库导入导出sql 文件的实际操作步骤,我们主要是将其分成5大步骤对其进行讲述,如果你对其有兴趣的话你就可以点击以下的文章进行观看了。 步骤如下: 一.MySQL的命令行模式的设置: 桌面->我的电脑->属性->环境变量->新建-> PATH=“;path\MySQL\bin;”其中path为MySQL的安装路径。 二.简单的介绍一下命令行进入MySQL的方法: 1.C:\>MySQL -h hostname -u username -p 按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如localhost,username 为MySQL的用户名,如root。 进入命令行后可以直接操作MySQL了。 2.简单介绍一下MySQL命令: 1.MySQL->CREATE DATABASE dbname; 创建数据库 1.MySQL->CREATE TABLE tablename; 创建表 1.MySQL->SHOW DATABASES; 显示数据库信息,有那些可用的数据库。 1.MySQL->USE dbname; 选择数据库 1.MySQL->SHOW TABLES; 显示表信息,有那些可用的表 1.MySQL->DESCRIBE tablename; 显示创建的表的信息 三.从数据库导出数据库文件: 1.将数据库mydb导出到e:\MySQL\mydb.sql文件中:

打开开始->运行->输入cmd 进入命令行模式 1.c:\>MySQLdump -h localhost -u root -p mydb >e:\MySQL\mydb.sql 然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。 2.将数据库mydb中的mytable导出到e:\MySQL\mytable.sql文件中: 1.c:\>MySQLdump -h localhost -u root -p mydb mytable>e:\MySQL\mytable. sql 3.将数据库mydb的结构导出到e:\MySQL\mydb_stru.sql文件中: 1.c:\>MySQLdump -h localhost -u root -p mydb --add-drop-table >e:\MySQ L\mydb_stru.sql -h localhost可以省略,其一般在虚拟主机上用 四.从外部文件MySQL导入数据到数据库中: 从e:\MySQL\mydb2.sql中将文件中的SQL语句导入数据库中: 1.从命令行进入MySQL,然后用命令CREATE DATABASE mydb2;创建数据库mydb2。 2.退出MySQL 可以输入命令exit;或者quit; 3.在CMD中输入下列命令: 1.c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb 2.sql 然后输入密码,就OK了。 五.下面谈一下关于导入文件大小限制问题的解决: 默认情况下:MySQL导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下: 1.在php.ini中修改相关参数: 影响MySQL导入文件大小的参数有三个: 1.memory_limit=128M,upload_max_filesize=2M,post_max_size=8M 修改upload_ ......

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库、表的创建及SQL语句命令 SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了 2、sql server服务启动失败,解决方法: 进入sql server configure manager,点开Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver 的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功 如图: 二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。 解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。 三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。 解决方法: 选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version 在数据库中,点击“新建查询”,然后输入命令,执行结果如下 五、数据库定义及操作命令: 按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。 1、修改数据库密码的命令: EXEC sp_password NULL, '你的新密码', 'sa' sp_password Null,'sa','sa'

Mysql命令行导入sql数据

Mysql命令行导入sql数据 我的个人实践是:phpmyadmin 导出utf-8 的insert 模式的abc.sql ftp abc.sql 到服务器 ssh 到服务器 mysql -u abc -p use KKK(数据库名,如果没有就create database KKK) set names 'utf8' source abc.sql 注意:我看到set character set utf8; 的说法,那样不行,中文乱码。 1.首先在命令行控制台中打开mysql 2.或许命令的如下: mysql -u root -p database_name 然后或许会提示输入对应的密码 2下面这条命令或许对你有用,当你想更换一个数据库的时候 mysql>use database_name 然后使用下面这个命令 mysql>source d:\datafilename.sql 当然你需要将文件所在的路径搞清楚,并且正确地使用了他 进入mysql 安装所在的目录的子目录bin. 输入执行导入sql的命令. 例如: 你的mysql 安装在d:\mysql 步骤如下: 开始-> 运行-> 输入CMD D: cd mysql\bin mysql -u root -p123456 test

SQLSERVER函数大全

SQL SERVER函数大全 SQL SERVER命令大全 SQLServer和Oracle的常用函数对比 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:select cast(-1.002 as int) value O:select trunc(-1.002) value from dual 5.四舍五入 S:select round(1.23456,4) value 1.23460 O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂 S:select Exp(1) value 2.7182818284590451 O:select Exp(1) value from dual 2.71828182 7.取e为底的对数 S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数 S:select log10(10) value 1 O:select log(10,10) value from dual; 1 9.取平方 S:select SQUARE(4) value 16 O:select power(4,2) value from dual 16

Excel2017工作表中如何导入.txt文件

Excel2017 工作表中如何导入.txt 文件 篇一:SQL 将 txt 文件导入 sql 数据库 就一句 sql 代码搞定,导入 sql2000 的代码。 BULK INSERT 表名 FROM 'F:\你的文本文件.txt' WITH( FIELDTERMINATOR ='以什么符号分 割数据', ROWTERMINATOR= '以什么符号加\n 结尾')--\n 是回车的意思, 就是回车前面是什么符号, 如果没符号直接单引号\n 例 如 : BULK INSERT bb FROM 'F:\2008-02-18.txt' WITH( FIELDTERMINATOR =',', ROWTERMINATOR= ',\n') bb 是表名,f 盘中的 F:\2008-02-18.txt 文件,FIELDTERMINATOR =','每个数据是以逗号分 隔的, ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。 我导入过很多次。 使用 BULK INSERT 用法如下: stu.txt 结构 1,Jim 2,Kate 3,Tom ... BULK INSERT dbo.TABLE1 FROM 'd:\stu.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ) 查看 table1 里的数据 select * from table1 就 ok 了。 在做一些 web 数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲 如何在 C#-web 项目中将 txt 文件和 excel 文件导入 SQL2000 数据库。 1.数据库准备 在 SQL2000 数据库的实例数据库 pubs 中建立一个数据表 txtInsert, 字段很简 单: id, name 两个。 1 / 13

SQLServer数据库入门学习总结

SQL Server数据库入门学习总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作组成;对于初学者首先要学的: 1.数据库是如何存储数据的 表,约束,触发器 2.数据库是如何操作数据的 insert,update,delete T-sql 函数存储过程触发器 3.数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库--网状数据库和层次数据库;第二代数据库--关系数据库 数据库(DB);数据库管理系统(DBMS);数据库系统(DBS) SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 数据库的创建和删除;数据库表的创建、修改和删除 数据完整性:实体完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint). 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型-- E-R图

简单的java解析文本文件批量导入数据库

package util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 批量导入数据库 * @author Administrator * */ public class InsertDB { public Connection getConnection() { Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( "jdbc:oracle:thin:@****:**:**", "**", "**"); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void main(String[] args) { InsertDB rt = new InsertDB(); rt.AhPhoneInsert("C:\\Documents and Settings\\Administrator\\桌面\\C.txt");// 参数为你的txt文件路径 } //数据记录导入 public boolean AhPhoneInsert(String file){

SQLServer数据库基本介绍

SQLServer数据库基本介绍 数据库用于存储结构化数据。数据的组织有多种数据模型,目前主要的数据模型是关系数据模型,以关系模型为基础的数据库就是关系数据库。一,数据库的概述1)关系数据库术语 表:用于存储数据,它以行列式方式组织,可以使用SQL从中获取、修改和删除数据库。表是关系数据库的基本元素记录:记录是指表中的一行,在一般情况下,记录和行的意思是相同的。字段:字段是表中的一列,在一般情况下,字段和列所致的内容是相同的。关系:关系是一个从数学中来的概念,在关系代数中,关系是指二维表,表既可以用来表示数据,也可以用来表示数据之间的联系索引:索引是建立在表上的单独的物理结构,基于索引的查询使数据获取更为快捷。索引是表中的一个或多个字段,索引可以是唯一的,也可以是不唯一的,主要是看这些字段是否允许重复。主索引是表中的一列和多列的组合,作为表中记录的唯一标识。外部索引是相关联的表的一列或多列的组合,通过这种方式来建立多个表之间的联系。视图:视图是一个真实表的窗口,视图不能脱离表。视图和表的区别是,表是实际存在的(需要存储在计算机中,占用存储空间),而视图是虚拟表(仅存储真实表的视图表现形式),它用于限制用户可以看到和修改的数据量,以简化数据的表达。存储过程:存储过程是一个编译过的SQL程序。在该过程中,可以嵌入条件逻辑、传递参数、定义变量和执行其他编程任务。 2)数据库管理系统提供的功能数据库管理系统简称为DBMS,是一种操作和管理数据库的大型软件,用于建立、使用维护数据库。基本功能如下

数据定义功能:定义数据库结构数据存取功能:提供数据操纵语言,实现对数据库数据的 基本存储操作数据库运行管理功能:提供数据控制功能,即数据的安全性,完整性和并发控制等对数据库运行进行有效的控制和管理数据库的建立和维护功能:包括数据库初始数据的嵌入,数据库的转储、恢复、重组织、系统性能监视、分析等功能数据库的传输:实现用户程序与DBMS之间的通信 3)数据库的存储结构 数据库文件主数据文件(Primary):是数据库的关键文件,用来存放数据,包含数据库启 动信息,每个数据库都必须包含也只能包含一个主数据文件,默认扩展名是.mdf次数据文件(Secondary):又称辅助文件,包含除主数据文件外的所有数据文件。次数据文件是可选的,有些数据库没有次数据文件,有些数据库则包含多个次数据文件.默认扩展名是.ndf事务日志 文件(Transaction Log):用来存放事务日志信息。事务日志记录了SQL Sever所有的事务 和由这些事务引起的数据库的变化。SQL Sever遵循先写日志再进行数据库修改的规则,所以 数据库中数据的任何变化在写到磁盘之前,这些改变先在事务日志中做了记录,每个数据库至 少有一个事务日志文件Lof File,也可以不止一个。默认扩展名是.ldf数据库文件组主文件组:包含主数据文件和所有没有被包含在其他文件组里的文件用户定义文件组:默认文件组:

MySQL教程:MySQL数据库导出和导入的方法

MySQL教程:MySQL数据库导出和导入的方法.txt25爱是一盏灯,黑暗中照亮前行的远方;爱是一首诗,冰冷中温暖渴求的心房;爱是夏日的风,是冬日的阳,是春日的雨,是秋日的果。MySQL教程:MySQL数据库导出和导入的方法 1).MySQLimport的语法介绍: MySQLimport位于MySQL/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可供选择。这个工具把一个文本文件(text file)导入到你指定的数据库和表中。比方说我们要从文件Customers.txt中把数据导入到数据库Meet_A_Geek中的表Custermers中: MySQLimport Meet_A_Geek Customers.txt 注意:这里Customers.txt是我们要导入数据的文本文件,而Meet_A_Geek是我们要操作的数据库,数据库中的表名是Customers,这里文本文件的数据格式必须与Customers表中的记录格式一致,否则MySQLimport命令将会出错。 其中表的名字是导入文件的第一个句号(.)前面文件字符串,另外一个例子:MySQLimport Meet_A_Geek Cus.to.mers.txt 那么我们将把文件中的内容导入到数据库Meet_A_Geek 中的Cus表中。 上面的例子中,都只用到两个参数,并没有用到更多的选项,下面介绍MySQLimport的选项 2).MySQLimport的常用选项介绍: 选项功能 -d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息 -f or --force 不管是否遇到错误,MySQLimport将强制继续插入数据 -i or --ignore MySQLimport跳过或者忽略那些有相同唯一关键字的行,导入文件中的数据将被忽略。 -l or -lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。 -r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。 --fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的,很多情况下数据以双引号括起。默认的情况下数据是没有被字符括起的。 --fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。 默认的分隔符是跳格符(Tab)

易语言操作SQLServer数据库全过程

易语言操作SQL Server 数据库全过程 最近看到很多初学者在问在易语言中如何操作SQL Serve以外部数据库,也有人提出想要个全面的操作过程,为了让大家能够尽快上手,我给大家简单介绍一下操作SQL的过程,希望能起到抛砖引玉的作用。 由于我本身工作业比较忙,就以我目前做的一个软件的部份内容列给大家简单讲讲吧,高手就不要笑话了,只是针对初学者 第步,首先需要建立一个数据库: 以建立一个员工表为例,各字段如下 3 员工ID int 4 0 0 登陆帐号nvarchar 30 1 0 密码nvarchar 15 1 0 所属部门nvarchar 30 1 0 姓名nvarchar 10 1 0 性别nvarchar 2 1 0 年龄nvarchar 10 1 0 当前职务nvarchar 10 1 0 级别nvarchar 10 1 0 出生日期nvarchar 40 1 0 专业nvarchar 10 1 0 学历nvarchar 8 1 0 婚姻状况nvarchar 4 1 0 身份证号nvarchar 17 1 0 籍贯nvarchar 50 1 0 毕业院校nvarchar 50 1 0 兴趣爱好nvarchar 600 1 0 电话nvarchar 11 1 0 家庭成员nvarchar 20 1 0 工作经历nvarchar 600 1 0 销售行业经验nvarchar 600 1 0 离职原因nvarchar 600 1 0 升迁记录nvarchar 600 1 0 调岗记录 打+ -rd nvarchar 600 1 0 特殊贡献nvarchar 600 1 0 奖励记录nvarchar 600 1 0 处罚记录nvarchar 600 1 0 同事关系nvarchar 4 1 0 企业忠诚度nvarchar 4 1 0 入司日期nvarchar 30 1 0 在职状态nvarchar 4 1 0 上级评语nvarchar 600 1 0 最后登陆时间nvarchar 20 1 0 登陆次数nvarchar 50 1 0 照片image 16 1 一般我习惯用nvarchar,因为这是可变长的的非Unicode数据,最大长度为8000个字符,您可以根

怎么在MySQL中导入txt文件啊

怎么在MySQL中导入txt文件啊 默认分类2010-05-20 17:52:24 阅读272 评论2 字号:大中小订阅 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名表名> 导出的文件名mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table 4.带语言参数导出 mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > d4.sql 5.导入数据库 常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:\wcnc_db.sql 常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:\wcnc_db.sql 进入MYSQL数据库 use bbs; Use bbs //要导的数据库 Source /var/mysqldata/mysql2007.sql 执行导入 或是: mysql -uusername -ppasswd --one-database bbs < db.sql 数据导 入 感觉导入数据库后是乱码可能你的方法并没有问题,可能是默认情况下,Mysql 并不支持中文,可以在建表或建库是把表的字符集设为gb2312,CHARACTER SET gb2312;

相关文档
最新文档