再见西城 发表于 2015-1-16 22:36:41

MYSQL编程:SQL Server编写存储历程小工具(三)

DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的数据库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云数据库解决方案的重点客户群体。server|存储历程SQLServer编写存储历程小工具
功效:为给定表创立Update存储历程
语法:sp_GenUpdate<TableName>,<PrimaryKey>,<StoredProcedureName>
以northwind数据库为例
sp_GenUpdateEmployees,EmployeeID,UPD_Employees
正文:假如您在Master体系数据库中创立该历程,那您就能够在您服务器上一切的数据库中利用该历程。
===========================================================*/
CREATEproceduresp_GenUpdate
@TableNamevarchar(130),
@PrimaryKeyvarchar(130),
@ProcedureNamevarchar(130)
as
setnocounton
declare@maxcolint,
@TableIDint
knowsky.com
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
selectUPDATE+@TableName,@maxcol+2ascolorder
union
selectSET,@maxcol+3ascolorder
union
selectsyscolumns.name+=@+syscolumns.name
+casewhencolorder<@maxcolthen,
whencolorder=@maxcolthen
end
astype,
colorder+@maxcol+3ascolorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsyscolumns.name@PrimaryKeyandsystypes.namesysname
union
selectWHERE+@PrimaryKey+=@+@PrimaryKey,(2*@maxcol)+4ascolorder
orderbycolorder

selecttypefrom#tempprocorderbycolorder
droptable#tempproc
/*=======源程序停止=========*/
应用程序需要使用数据库,数据库本身需要设计、开发和部署。还有MySQL学习教程,客户怎样实施混合系统,或者需要帮助管理多个云服务?

愤怒的大鸟 发表于 2015-1-19 07:09:35

你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。

再见西城 发表于 2015-1-24 11:21:15

where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

不帅 发表于 2015-2-1 06:50:26

入门没那么困难,精通没那么容易

兰色精灵 发表于 2015-2-19 08:53:47

在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。

山那边是海 发表于 2015-3-6 14:22:26

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

小妖女 发表于 2015-3-13 02:08:16

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

深爱那片海 发表于 2015-3-20 09:43:35

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