SQLSERVER數(shù)據(jù)庫(kù)升級(jí)腳本圖文步驟
只能遠(yuǎn)程協(xié)助的方式。我特意做了一個(gè)腳本,用電話指導(dǎo)客戶(hù)在SSMS里執(zhí)行一下腳本就可以了
1.0的數(shù)據(jù)庫(kù)跟1.1的數(shù)據(jù)庫(kù)的區(qū)別是1.1的數(shù)據(jù)庫(kù)里的其中一個(gè)[CT_OuterCard]表比1.0的多了6個(gè)字段,其他所有表都一樣
還有存儲(chǔ)過(guò)程增加了很多,其他都沒(méi)有改變
首先,先在公司的服務(wù)器數(shù)據(jù)庫(kù)上生成存儲(chǔ)過(guò)程腳本,數(shù)據(jù)庫(kù)是1.1版本的,下面的圖片里沒(méi)有說(shuō)明的,都是默認(rèn)設(shè)置,下一步即可
選中數(shù)據(jù)庫(kù)-》右鍵—》任務(wù)-》生成腳本
當(dāng)然,如果你的數(shù)據(jù)庫(kù)里有自定義函數(shù)的話,也可以勾選函數(shù),如果我們的數(shù)據(jù)庫(kù)沒(méi)有函數(shù),所以。。。
保存到新建查詢(xún)窗口
這一步做完了,然后編寫(xiě)下面的SQL腳本
--升級(jí)GPOS1.0到GPOS1.1數(shù)據(jù)庫(kù)的升級(jí)腳本 2013-7-4
USE [GPOSDB]
GO
------------------刪除所有存儲(chǔ)過(guò)程-------------------
--select * from sys.procedures
declare @sql varchar(4000)
set @sql=''
select @sql=@sql+'drop proc '+name+'; ' from sys.procedures
--print @sql
exec(@sql)
--------------------------------在[CT_OuterCard]表添加6個(gè)字段-------------------------------
ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransCurrCount] INT NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitTransCurrCount] DEFAULT ((0))
ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransType] [int] CONSTRAINT [DF_CT_OuterCard_I_LimitTransType] DEFAULT ((0))
ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransTotal] [decimal](18, 2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransTotal] DEFAULT ((0))
ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransCurrTotal] [decimal](18, 2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransCurrTotal] DEFAULT ((0))
ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitCarNo] [int] NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitCarNo] DEFAULT ((0))
ALTER TABLE [dbo].[CT_OuterCard] ADD [D_LimitDate] [datetime] NOT NULL CONSTRAINT [DF_CT_OuterCard_D_LimitDate] DEFAULT (getdate())
--------------------------------------------------------------------------------------------------------------
--把剛才在新建查詢(xún)窗口里生成的存儲(chǔ)過(guò)程腳本粘貼到下面
---------------------------創(chuàng)建GPOS1.1的所有存儲(chǔ)過(guò)程---------------------------------------------
USE [GPOSDB]
GO
/****** 對(duì)象: StoredProcedure [dbo].[Report_GreaserSaleStat] 腳本日期: 07/04/2013 13:27:09 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROC [dbo].[Report_GreaserSaleStat]
@StartDate datetime,
@EndDate datetime,
@Action int --0為交易記錄,1為班次記錄
insert into #tmpCardAmoutStat
(
VC_OC_CardNO,
set @i=@i+1
end
truncate table #tmpCards
insert into #tmpCards(VC_OC_CardNO)
select VC_OC_CardNO from CT_OuterCard where isnull(VC_OC_Company,'')=''
set @j=1
select @cardcount=count(*) from #tmpCards
while @j<=@cardcount
begin
select @VC_OC_CardNO=VC_OC_CardNO from #tmpCards where IndexId=@j
insert into #tmpCardAmoutStat
(
VC_OC_CardNO,
insert into #tmpCardAmoutStat
(
VC_OC_CardNO,
CompanyName,
VC_OC_UserName,
StartAmount,
FillMoney,
ConsumeSumVol,
ConsumeMoney,
SumConsumeSumVol,
SumConsumeMoney,
SumFillMoney
)
select
null,
null,
'客戶(hù)卡小計(jì)',
sum(StartAmount),
sum(FillMoney),
sum(ConsumeSumVol),
truncate table #tmpCards
insert into #tmpCards(VC_OC_CardNO)
select VC_IC_CardNO from CT_InhouseCard where isnull(VC_IC_CardNO,'')<>''
set @j=1
select @cardcount=count(*) from #tmpCards
while @j<=@cardcount
begin
select @VC_OC_CardNO=VC_OC_CardNO from #tmpCards where IndexId=@j
insert into #tmpCardAmoutStat
(
VC_OC_CardNO,
CompanyName,
VC_OC_UserName,
StartAmount,
FillMoney,
ConsumeSumVol,
ConsumeMoney,
SumConsumeSumVol,
SumConsumeMoney,
SumFillMoney
)
select
@VC_OC_CardNO,
'員工卡',
isnull((select VC_IC_UserName from CT_InhouseCard where VC_IC_CardNO=@VC_OC_CardNO),''),
isnull((select top 1 DE_FD_Amount from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO and (D_FD_DateTime<=@StartDate) order by D_FD_DateTime desc),0),
isnull((select sum(DE_A_AppendAmount) from CT_Append where VC_A_CardNO=@VC_OC_CardNO and (D_A_AppendDateTime between @StartDate and @EndDate)),0),
isnull((select sum(DE_FD_Volume) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO and (D_FD_DateTime between @StartDate and @EndDate)),0),
isnull((select sum(DE_FD_Amount) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO and (D_FD_DateTime between @StartDate and @EndDate)),0),
isnull((select sum(DE_FD_Volume) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO),0),
isnull((select sum(DE_FD_Amount) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO),0),
isnull((select sum(DE_A_AppendAmount) from CT_Append where VC_A_CardNO=@VC_OC_CardNO),0)
set @j=@j+1
end
insert into #tmpCardAmoutStat
(
VC_OC_CardNO,
CompanyName,
VC_OC_UserName,
StartAmount,
FillMoney,
ConsumeSumVol,
ConsumeMoney,
SumConsumeSumVol,
SumConsumeMoney,
SumFillMoney
)
select
null,
null,
'員工卡小計(jì)',
sum(StartAmount),
sum(FillMoney),
sum(ConsumeSumVol),
sum(ConsumeMoney),
sum(SumConsumeSumVol),
sum(SumConsumeMoney),
sum(SumFillMoney)
from
#tmpCardAmoutStat
where
CompanyName='員工卡'
---計(jì)算員工卡匯總結(jié)束---
end
----計(jì)算總匯總開(kāi)始---
insert into #tmpCardAmoutStat
(
VC_OC_CardNO,
CompanyName,
VC_OC_UserName,
StartAmount,
FillMoney,
ConsumeSumVol,
ConsumeMoney,
SumConsumeSumVol,
SumConsumeMoney,
SumFillMoney
)
select
null,
null,
'總計(jì)',
sum(StartAmount),
sum(FillMoney),
sum(ConsumeSumVol),
sum(ConsumeMoney),
sum(SumConsumeSumVol),
sum(SumConsumeMoney),
sum(SumFillMoney)
from
#tmpCardAmoutStat
where
(VC_OC_UserName='客戶(hù)卡小計(jì)' or VC_OC_UserName='員工卡小計(jì)') and VC_OC_CardNO is null
update #tmpCardAmoutStat set EndAmount=StartAmount+FillMoney-ConsumeMoney
---計(jì)算總匯總結(jié)束---
select * from #tmpCardAmoutStat
drop table #tmpCards
drop table #tmpCompanys
drop table #tmpCardAmoutStat
GO
--其他存儲(chǔ)過(guò)程省略。。。。。。。。。。。
然后把這個(gè)腳本發(fā)給客戶(hù),讓客戶(hù)在SSMS里執(zhí)行一下就可以了
當(dāng)然如果某些表的主鍵更改了也很簡(jiǎn)單,使用alter table alter column語(yǔ)句修改一下就可以了
如有不對(duì)的地方,歡迎大家拍磚o(∩_∩)o
- sqlserver數(shù)據(jù)庫(kù)移動(dòng)數(shù)據(jù)庫(kù)路徑的腳本示例
- sqlserver數(shù)據(jù)庫(kù)大型應(yīng)用解決方案經(jīng)驗(yàn)總結(jié)
- 將ACCESS數(shù)據(jù)庫(kù)遷移到SQLSERVER數(shù)據(jù)庫(kù)兩種方法(圖文詳解)
- SQLSERVER數(shù)據(jù)庫(kù)備份后無(wú)法還原的解決辦法
- sqlserver數(shù)據(jù)庫(kù)出現(xiàn)置疑的解決思路
- SQLSERVER數(shù)據(jù)庫(kù)中的5173錯(cuò)誤解決方法
- 將備份的SQLServer數(shù)據(jù)庫(kù)轉(zhuǎn)換為SQLite數(shù)據(jù)庫(kù)操作方法
- sqlserver數(shù)據(jù)庫(kù)主鍵的生成方式小結(jié)(sqlserver,mysql)
- 重命名SQLServer數(shù)據(jù)庫(kù)的方法
- 自動(dòng)定時(shí)備份sqlserver數(shù)據(jù)庫(kù)的方法
- sqlserver數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)操作詳解(圖)
相關(guān)文章
SQL Server誤區(qū)30日談 第26天 SQL Server中存在真正的“事務(wù)嵌套”
嵌套事務(wù)可不會(huì)像其語(yǔ)法表現(xiàn)的那樣看起來(lái)允許事務(wù)嵌套。我真不知道為什么有人會(huì)這樣寫(xiě)代碼,我唯一能夠想到的就是某個(gè)哥們對(duì)SQL Server社區(qū)嗤之以鼻然后寫(xiě)了這樣的代碼說(shuō):“玩玩你們”2013-01-01MSSQL數(shù)據(jù)庫(kù)排序規(guī)則如何更改
更改 SQL Server 2005 實(shí)例的默認(rèn)排序規(guī)則的操作可能會(huì)比較復(fù)雜,本文將提供詳細(xì)的操作步驟,需要了解的朋友可以參考下2012-11-11SQL?Server數(shù)據(jù)庫(kù)備份和恢復(fù)數(shù)據(jù)庫(kù)的全過(guò)程
最近在功能調(diào)試前需要先將測(cè)試數(shù)據(jù)庫(kù)備份,然后功能調(diào)試之后再將測(cè)試數(shù)據(jù)庫(kù)還原,這樣就可以重復(fù)的進(jìn)行功能調(diào)試,這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫(kù)備份和恢復(fù)數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2022-06-06mssql2005,2008導(dǎo)出數(shù)據(jù)字典實(shí)現(xiàn)方法
在項(xiàng)目開(kāi)發(fā)過(guò)程中會(huì)用到數(shù)據(jù)字典,本文將詳細(xì)介紹mssql2005,2008如何導(dǎo)出數(shù)據(jù)字典,需要了解更多的朋友可以參考下2012-11-11SQL語(yǔ)句練習(xí)實(shí)例之五 WMS系統(tǒng)中的關(guān)于LIFO或FIFO的問(wèn)題分析
SQL語(yǔ)句練習(xí)實(shí)例之五 WMS系統(tǒng)中的關(guān)于LIFO或FIFO的問(wèn)題分析,需要的朋友可以參考下。2011-10-10linux下apache、mysql、php安裝配置詳細(xì)筆記
linux下apache、mysql、php安裝配置筆記,有需要的朋友可以參考下2013-02-02SQL Server 中調(diào)整自增字段的當(dāng)前初始值
SQL Server 中調(diào)整自增字段的當(dāng)前初始值...2007-01-01SQL server中字符串逗號(hào)分隔函數(shù)分享
繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開(kāi),在開(kāi)發(fā)中也有許多以參數(shù)的形式傳入帶逗號(hào)字條串參數(shù),需要的朋友可以參考下2016-10-10