兰色精灵 发表于 2015-1-16 22:36:41

MYSQL网页设计SQL Server编写存储历程小工具(二)

人们常说“成功孕育成功”,这种说法明显非常适合MySQL的情况。MySQL学习教程这个开源数据库号称在全世界有超过110万份的完全安装。server|存储历程SQLServer编写存储历程小工具
以下是两个存储历程的源程序
/*===========================================================
语法:sp_GenInsert<TableName>,<StoredProcedureName>
以northwind数据库为例
sp_GenInsertEmployees,INS_Employees
正文:假如您在Master体系数据库中创立该历程,那您就能够在您服务器上一切的数据库中利用该历程。
=============================================================*/
CREATEproceduresp_GenInsert
@TableNamevarchar(130),
@ProcedureNamevarchar(130)
as
setnocounton
declare@maxcolint,
@TableIDint
set@TableID=object_id(@TableName)
select@MaxCol=max(colorder)
fromsyscolumns
whereid=@TableID
selectCreateProcedure+rtrim(@ProcedureName)astype,0ascolorderinto#TempProc
union
selectconvert(char(35),@+syscolumns.name)
+rtrim(systypes.name)
+casewhenrtrim(systypes.name)in(binary,char,nchar,nvarchar,varbinary,varchar)then(+rtrim(convert(char(4),syscolumns.length))+)
whenrtrim(systypes.name)notin(binary,char,nchar,nvarchar,varbinary,varchar)then
end
+casewhencolorder<@maxcolthen,
whencolorder=@maxcolthen
end
astype,
colorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsystypes.namesysname
union
selectAS,@maxcol+1ascolorder
union
selectINSERTINTO+@TableName,@maxcol+2ascolorder
union
select(,@maxcol+3ascolorder
union
selectsyscolumns.name
+casewhencolorder<@maxcolthen,
whencolorder=@maxcolthen
end
astype,
colorder+@maxcol+3ascolorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsystypes.namesysname
union
select),(2*@maxcol)+4ascolorder
union
selectVALUES,(2*@maxcol)+5ascolorder
union
select(,(2*@maxcol)+6ascolorder
union
select@+syscolumns.name
+casewhencolorder<@maxcolthen,
whencolorder=@maxcolthen
end
astype,
colorder+(2*@maxcol+6)ascolorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsystypes.namesysname
union
select),(3*@maxcol)+7ascolorder
orderbycolorder

selecttypefrom#tempprocorderbycolorder
droptable#tempproc
一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如MySQL学习教程,WindowsAzureSQLDatabase(以前的SQLAzure)是微软的DBaaS产品,提供了一个类似于SQLServer的数据库平台。

因胸联盟 发表于 2015-1-19 18:26:56

分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。

乐观 发表于 2015-1-25 14:02:58

每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。

简单生活 发表于 2015-2-2 22:19:36

原来公司用过MYSQL自己也只是建个表写个SQL

柔情似水 发表于 2015-2-8 13:28:48

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力

小妖女 发表于 2015-2-25 15:20:42

无法深入到数据库系统层面去了解和探究

飘灵儿 发表于 2015-3-7 23:19:02

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。

蒙在股里 发表于 2015-3-15 16:37:50

不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?

金色的骷髅 发表于 2015-3-22 02:11:29

呵呵,这就是偶想说的
页: [1]
查看完整版本: MYSQL网页设计SQL Server编写存储历程小东西(二)