Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
执行一个存储过程很简单,与执行一个SQL语句基本上没什么区别.
SQL 的存储过程,也就是通过一定的结构把SQL语句组合起来.但关于很详细的细节内容,不是一两句话可以讲清楚的,建议买一本这方面的专业书看一看.
我的理解是,菜老兄的意思应该是自动生成这个项目使用的数据库文件(MDF文件),而不是SQl Server数据库管理系统。数据库与数据库管理系统是完全不同的两个概念。
我的想法是,如果要新建项目数据库(例如财务软件中新建一个账套),应该把建立项目数据库(包括建立这个数据库的所有表、存储过程)的所有语句编写成一个SQl server的脚本文件(即由SQL语句组成的文件),在需要建立项目数据库的时候,让SQL server调用并自动执行这个脚本文件,即建立了项目所需要的数据库。
我还没有试过,请菜老兄调试一下看是否可以,如果成功了,也一块分享一下,我也需要同样的功能!
如果项目需要的数据库文件已经建好,即mdf文件已经建好,不需要新建数据库文件,我认为应该用SQl server的附加数据库功能(用CREATE DATABASE语句),或者用SQl Server的企业管理器的附加数据库功能。
如果项目需要的数据库文件已经建好,即mdf文件已经建好(不需要再新建数据库文件),我认为应该用SQl server的附加数据库功能,可以用CREATE DATABASE语句,或者用SQl Server的企业管理器的附加数据库功能。
****** Object: Database yahis Script Date: 2009-4-11 9:03:58 ******/
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'yahis')
DROP DATABASE [yahis]
GO
CREATE DATABASE [yahis] ON (NAME = N'yahis_Data', FILENAME = N'd:\Program Files\Microsoft SQL Server\MSSQL\data\yahis.mdf' , SIZE = 4, FILEGROWTH = 10%) LOG ON (NAME = N'yahis_Log', FILENAME = N'd:\Program Files\Microsoft SQL Server\MSSQL\data\yahis_log.ldf' , SIZE = 1, FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
GO
exec sp_dboption N'yahis', N'autoclose', N'true'
GO
exec sp_dboption N'yahis', N'bulkcopy', N'false'
GO
exec sp_dboption N'yahis', N'trunc. log', N'true'
GO
exec sp_dboption N'yahis', N'torn page detection', N'true'
GO
exec sp_dboption N'yahis', N'read only', N'false'
GO
exec sp_dboption N'yahis', N'dbo use', N'false'
GO
exec sp_dboption N'yahis', N'single', N'false'
GO
exec sp_dboption N'yahis', N'autoshrink', N'true'
GO
exec sp_dboption N'yahis', N'ANSI null default', N'false'
GO
exec sp_dboption N'yahis', N'recursive triggers', N'false'
GO
exec sp_dboption N'yahis', N'ANSI nulls', N'false'
GO
exec sp_dboption N'yahis', N'concat null yields null', N'false'
GO
exec sp_dboption N'yahis', N'cursor close on commit', N'false'
GO
exec sp_dboption N'yahis', N'default to local cursor', N'false'
GO
exec sp_dboption N'yahis', N'quoted identifier', N'false'
GO
exec sp_dboption N'yahis', N'ANSI warnings', N'false'
GO
exec sp_dboption N'yahis', N'auto create statistics', N'true'
GO
exec sp_dboption N'yahis', N'auto update statistics', N'true'
GO
if( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) ) or ( (@@microsoftversion / power(2, 24) = 7) and (@@microsoftversion & 0xffff >= 1082) ) )
exec sp_dboption N'yahis', N'db chaining', N'false'
GO
use [yahis]
GO
/****** Object: Table [dbo].[H_CW] Script Date: 2009-4-11 9:03:59 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[H_CW]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[H_CW]
GO
/****** Object: Table [dbo].[H_DWXX] Script Date: 2009-4-11 9:03:59 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[H_DWXX]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[H_DWXX]
GO
/****** Object: Table [dbo].[H_FYLB] Script Date: 2009-4-11 9:03:59 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[H_FYLB]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[H_FYLB]
GO
/****** Object: Table [dbo].[H_HZ] Script Date: 2009-4-11 9:03:59 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[H_HZ]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[H_HZ]
GO
/****** Object: Table [dbo].[H_ICD] Script Date: 2009-4-11 9:03:59 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[H_ICD]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[H_ICD]
GO
后面还有很多很多.......
执行脚本文件用Osql来实现(Osql是DOS命令)。如果有已经建立好的数据库文件,附加数据库可直接用Sql server的CREATE DATABASE语句(不用再调用SQL脚本文件建立数据库)。