生成SQL Server数据库脚本四法
数据库开发人员或数据库管理员(DBA)为了发布数据库或备份数据库对象,常需要生成T-SQL脚本。笔者在这里对常用方法进行了总结,供朋友们参考。
方法一:使用企业管理器
进入“企业管理器”,右击数据库,选择“所有任务→生成SQL脚本”即可。
方法评价:优点是方便,且操作简单。缺点是不能在应用程序中执行。
方法二:使用SQLDMO
很多朋友喜欢通过程序生成脚本,比如使用SQLDMO,以下是一个使用SQLD MO方法生成建库脚本的例子,代码如下:
DECLARE
@serverName varchar(255),--服务器名
@database varchar(255),--数据库名
@ScriptFile varchar(255)--存储的脚本文件名(路径名称)
SELECT @serverName='MYserver',
@database='Mydatabase',
@ScriptFile='c:\test.sql'
DECLARE @cmdstr nvarchar(4000)
DECLARE @object int
DECLARE @hr int
SET @CmdStr = 'Connect('+@ServerName+')'
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
EXEC @hr = sp_OASetProperty @object, 'LoginSecure', TRUE
EXEC @hr = sp_OAMethod @object,@CmdStr
SET @CmdStr = 'Databases("'+@database+'").Script(5,"' + @ScriptFile + '")'
EXEC @hr = sp_OAMethod @object,@CmdStr
方法评价:SQLDMO的最大优点是灵活,但缺点是使用者需要对数据的对象依存关系相当清楚,这对于SQL Server初学者来说难度较大。用SQLDMO生成脚本的方法应用很普遍,想详细了解的朋友可以在网上很容易地找到相关资料。
方法三:使用DTS
如果是MS SQL Server 7.0以上的版本,我们也可以通过DTS将源数据库的对象复制到目标数据库。在SQL Server 7.0中有一个“transfer objects”的选项。
方法评价:可以使用MS提供的图形界面,操作比较方便,还可以建立一个DTS包反复调用。缺点是对多个数据库对象分别进行控制时很不方便。
方法四:使用scptxfr.exe工具
笔者想重点介绍的工具是scptxfr.exe,SQL Server 7.0以上的版本都自带了这个工具,默认安装。SQL Server
2000安装在“\Program Files\Microsoft SQL Server\MSS
QL\Upgrade”目录下。如果没有安装,可以到安装光盘上查找。
scptxfr.exe是一个带命令行参数的可执行程序,可以生成数据库所有对象的完整脚本。可
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
一、ADO简介
ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,不仅简单易用,并且不失灵活性.不失为C++利用数据库快速开发的不错选择。
理论就不用我在这儿费话了,网上有很多,但光是理论,也不是不够的,ADO访问数据的方法很灵活,容易让人混淆.网上大部分 ......
public class SqlCheck
{
public SqlCheck()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public SqlConnection oconn()
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["StudyConnectionString"] ......
1.默认约束:定义该列未输入值时应该具有的默认值
SQL-------alter table 表名 add constraint dt_列名 default 默认值 for 列名
2.空值约束:定义该列是否允许为空值
SQL-------定义表的时候在对应列列数据类型后面添加not null
3.检查约束:又叫check约束,用来限制列的取值,它根据定义的逻辑表达式来强制域的完整性 ......
此方法是从一位前辈那里学来的,导语句很方便,只需写清楚表名就行。怕忘了,暂记一下。(sql server 2005试验过)
第一次使用的话,需要建立如下存储过程。代码很长,没关系,直接copy就行。
--------- outputdata 存储过程
CREATE PROCEDURE dbo.OutputData
@tablename sysname
AS
declare @column va ......