我做有一SQL server 为支持数据库的应用程序,现在要发布.有一问题是我怎样将支持库安装在目标用户上(安装程序打有SQL 引擎),而不用安装MS SQL Server就能运行?
方法1):做安装程序时,把SQL和程序包含在一起,通过安装程序一次到位;
方法2):安装完程序和数据引擎,再运行一小程序,通过此程序生成SQL 数据库.问题是我现在有一由MS SQL导出的.sql脚本文件,其中包含有脚本和创建表以及存储过程.能有什么较好的方法 执行此文件而达到此目的?
谢谢高手指点! 分数等待...附.sql文件部分内容:
 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_ActiveData_AnnulusProperty]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[ActiveData] DROP CONSTRAINT FK_ActiveData_AnnulusProperty
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Kick_AnnulusProperty]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Kick] DROP CONSTRAINT FK_Kick_AnnulusProperty
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_TopOfAnnulus_AnnulusProperty]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[TopOfAnnulus] DROP CONSTRAINT FK_TopOfAnnulus_AnnulusProperty
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCDAFieldInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[DelCDAFieldInfo]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCDAStatusInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[DelCDAStatusInfo]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCDATableInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[DelCDATableInfo]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CurParaValue]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[CurParaValue]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Cuttings]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Cuttings]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DCTubeCat]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[DCTubeCat]
GOCREATE TABLE [dbo].[*CasingElementType] (
[ETYID] [int] IDENTITY (1, 1) NOT NULL ,
[ETYEN] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ETYCN] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOCREATE TABLE [dbo].[*CementingElementType] (
[ETYID] [int] IDENTITY (1, 1) NOT NULL ,
[ETYEN] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ETYCN] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOCREATE TABLE [dbo].[*CoreElementType] (
[ETYID] [int] IDENTITY (1, 1) NOT NULL ,
[ETYEN] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ETYCN] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOcreate proc DelCDAFieldInfo
AS DELETE FROM DatabaseFieldGO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GOSET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
create proc DelCDAStatusInfo
AS DELETE FROM ParaSimPropertyGO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GOSET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

解决方案 »

  1.   

    1: 运行脚本没法生成数据。
    2:生成数据只能用备份恢复。/************ 备份  恢复 *******
    backup database sys to disk='c:\目录\a.bak' with init--还原 
    use master
    RESTORE DATABASE TestDB FROM DISK = 'c:\目录\a.bak'
      

  2.   

    有一个办法:把ACCESS2000或ACCESS XP升级为SQL SERVER桌面引擎,其可以和安装包一起打包。把ACCESS2000或ACCESS XP升级为SQL SERVER桌面引擎的方法请参照有关资料。
      

  3.   

    to txlicenhe(马可@李) 
    我要生成的是数据库结构,包括表,约束,存储过程等,而不是数据.
      

  4.   

    将脚本打包进去,安装完后用OSQL运行脚本