1.使用Sql Server Management Studio 2008 连接数据库。
创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务奉化,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
2.选中要导出数据的数据库节点,点鼠标右键,在菜单中选择“任务”-“生成脚本”,如图:
3。在弹出的界面中,点2次“下一步”进入如图界面中,把“编写数据的脚步”置为true。
4。其它的操作点“下一步”即可。下图是最后生成的Sql脚本:
注意:这里一定要使用Sql Server Management Studio 2008,其它版本不行。
SQL Server 2008将数据导出为脚本
从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过程
(但是SQL Server 2012和SQL Server 2008的导出脚本的过程还有一点细微的差别)
开始:
选择要操作的数据库--右键--》任务---》生成脚本
然後下一步
这个编写数据脚本改为是true,表示是表里的数据也一起生成sql脚本
然後再下一步
这里可以自己选择,然后下一步
然後下一步
这里自己选择脚本的保存路径 , 然后下一步下一步完成就得了~
using System.Data.SqlClient;
using System.Data;
SqlConnection SqlCon=new SqlConnection("server =服务器;database =数据库;uid =帐号;pwd =密码");
public static DataTable GetTable(string select)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(select, SqlCon);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw ex;
}
}
其中select 一般形式是 "select * from table"
在SqlServer中对表操作是最基本的,有时候为了为了避免操作失误带来的问题,先要备份一遍表结构及表中的内容,这样当真的发生误操作时可以很快的将数据恢复,所以说非常有用,自己知道的有点晚,记录下来希望对大家有用。编写创建脚本设置为TRUE,会生成表结构创建脚本:看到生成的脚本中除了列外还有主键约束、字段说明等内容,这是在“选择脚本选项”中设置对应选项为TRUE的缘故SqlServer2008中默认CHECK约束、外键、唯一键、主键设置为TRUE,如果不需要的话可以设置为FALSE,而没有数据是因为“编写数据的脚本”设置为FALSE的缘故。生成的脚本中没有数据是因为“编写数据的脚本”设置为FALSE的缘故,如果想包含数据的话将“编写数据的脚本”设置为TRUE即可,如果还有其他要求的话可以在“选择脚本选项”中任意设置以满足要求。SqlServer2008提供了三种保存脚本的方法,如果表中数据很多的话尽量保存到文件中,因为当数据很多时保存到查询分析器中有可能报错,数据量为50多万时我遇到过报错情况,保存到文件中却没问题。可在图形界面下操作。1、登录sqlserver数据库。2、在左边的树列表中找到要导出的表,如图中选择的是dbo.test表。3、右键这个表名,依次选择:编写表脚本为-CREATE到-文件。4、选择好存储路径,填写好文件名称,点击保存按钮即可。5、此时到保存文件的路径下打开文件,可看到如下内容:
sql之前的版本导出脚本的时候只能把数据表的结构导出,却不能把其中的数据一齐导出来,在平时的应用中难免有时希望获取数据导出的脚本,比如有时sql版本不一样的时候,无法把高版本的数据库备份直接还原到低版本的数据库中,今天我就遇到了这样的一个情况,最后没有办法只有把原数据库中的数据以脚本形式导出,幸好用的是sql08,因为sql
server2008新增了一个导出带数据脚本的功能,下面把具体的步骤说一下
第一步,选中需要导出脚本的数据库,右键选中
第二步,选取弹出菜单中的任务----生成脚本选项(会弹出一sql生成脚本的向导)
第三步,在向导中点击下一步,弹出选择数据库界面(默认是自己之前选中的数据库),把下面,“为所选数据库中的所有对象编写脚本(a)”勾选,之后下一步
第四步,在弹出的选择脚本选项,为要编写脚本的对象选择选项页中,找到表/视图选项模块下的“编写数据的脚本”其默认是false改为true之后继续下一步(这一步最重要的)
第五步,在输出选项页中选择脚本保存模式,可以保存到文件中,或者查询窗口,或者粘贴板,你懂的啊!
最后确定就会发现带数据中的脚本已经生成了
1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count(*) 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束L = 日志FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程S = 系统表TF = 表函数
TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status0,即:select * from sysobjects where xtype='U' and status0
因为数据库附加到2005的时候, 数据库文件已经自动升级到2005, 所以在2000下是无法再附加的(没有向上兼容的)直接restore或附加是不行的, 用脚本+导数据肯定没有问题。
2005转到2000的步骤步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件
2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库
3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数 据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成