以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  有关SQL有存储过程的使用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2388)

--  作者:baoxyang
--  发布时间:2009/4/10 16:21:00
--  有关SQL有存储过程的使用
如何执行一个存储过程?SQL编程语句是什么?请知道的帮忙。
--  作者:cpayinyuan
--  发布时间:2009/4/10 18:13:00
--  
以下是引用baoxyang在2009-4-10 16:21:00的发言:
如何执行一个存储过程?SQL编程语句是什么?请知道的帮忙。

    执行一个存储过程很简单,与执行一个SQL语句基本上没什么区别.
    SQL 的存储过程,也就是通过一定的结构把SQL语句组合起来.但关于很详细的细节内容,不是一两句话可以讲清楚的,建议买一本这方面的专业书看一看.


--  作者:菜鸟foxtable
--  发布时间:2009/4/10 22:10:00
--  
我倒想问问,如果SQL数据库表结构已经建立好,如何让客户自行安装此数据库?

比如把此数据库封装到发布的项目中.......点击安装文件自行安装...图片点击可在新窗口打开查看如何实现?
--  作者:yangming
--  发布时间:2009/4/10 22:49:00
--  
sql很大,我想还是让客户自己安装比较好,再说你说是封装的也是盗版的哟,呵呵
--  作者:菜鸟foxtable
--  发布时间:2009/4/11 8:48:00
--  
图片点击可在新窗口打开查看我没表达清楚.....

我意思是这四个文件.....如何让它自动放到已安装好的SQL里....

图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-4-11 8:48:01编辑过]

--  作者:cpayinyuan
--  发布时间:2009/4/11 8:52:00
--  
以下是引用yangming在2009-4-10 22:49:00的发言:
sql很大,我想还是让客户自己安装比较好,再说你说是封装的也是盗版的哟,呵呵

    我的理解是,菜老兄的意思应该是自动生成这个项目使用的数据库文件(MDF文件),而不是SQl Server数据库管理系统。数据库与数据库管理系统是完全不同的两个概念。
    我的想法是,如果要新建项目数据库(例如财务软件中新建一个账套),应该把建立项目数据库(包括建立这个数据库的所有表、存储过程)的所有语句编写成一个SQl server的脚本文件(即由SQL语句组成的文件),在需要建立项目数据库的时候,让SQL server调用并自动执行这个脚本文件,即建立了项目所需要的数据库。
    我还没有试过,请菜老兄调试一下看是否可以,如果成功了,也一块分享一下,我也需要同样的功能!

[此贴子已经被作者于2009-4-11 9:01:43编辑过]

--  作者:cpayinyuan
--  发布时间:2009/4/11 8:57:00
--  
以下是引用菜鸟foxtable在2009-4-11 8:48:00的发言:
图片点击可在新窗口打开查看我没表达清楚.....

我意思是这四个文件.....如何让它自动放到已安装好的SQL里....

图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-4-11 8:48:01编辑过]

如果项目需要的数据库文件已经建好,即mdf文件已经建好,不需要新建数据库文件,我认为应该用SQl server的附加数据库功能(用CREATE DATABASE语句),或者用SQl Server的企业管理器的附加数据库功能。

[此贴子已经被作者于2009-4-11 9:04:03编辑过]

--  作者:cpayinyuan
--  发布时间:2009/4/11 9:05:00
--  

     如果项目需要的数据库文件已经建好,即mdf文件已经建好(不需要再新建数据库文件),我认为应该用SQl server的附加数据库功能,可以用CREATE DATABASE语句,或者用SQl Server的企业管理器的附加数据库功能。


--  作者:菜鸟foxtable
--  发布时间:2009/4/11 10:40:00
--  
生成脚本文件容易,问题是如何调用SQL执行这些脚本?在狐表上怎么实现调用SQL执行?希望老爹能做个示例.....

脚本代码好长...

****** 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

后面还有很多很多.......

[此贴子已经被作者于2009-4-11 10:41:31编辑过]

--  作者:cpayinyuan
--  发布时间:2009/4/11 12:31:00
--  
以下是引用菜鸟foxtable在2009-4-11 10:40:00的发言:
生成脚本文件容易,问题是如何调用SQL执行这些脚本?在狐表上怎么实现调用SQL执行?希望老爹能做个示例.....

 

[此贴子已经被作者于2009-4-11 10:41:31编辑过]

   执行脚本文件用Osql来实现(Osql是DOS命令)。如果有已经建立好的数据库文件,附加数据库可直接用Sql server的CREATE DATABASE语句(不用再调用SQL脚本文件建立数据库)。

[此贴子已经被作者于2009-4-11 12:57:10编辑过]