SQLSERVER數(shù)據(jù)庫(kù)升級(jí)腳本圖文步驟
只能遠(yuǎn)程協(xié)助的方式。我特意做了一個(gè)腳本,用電話(huà)指導(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ù)的話(huà),也可以勾選函數(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)文章
java連接mysql數(shù)據(jù)庫(kù) java連接sql server數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了java連接mysql數(shù)據(jù)庫(kù),以及java連接sql server數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
Sql Server中的系統(tǒng)視圖詳細(xì)介紹
這篇文章主要介紹了Sql Server中的系統(tǒng)視圖詳細(xì)介紹,本文講解了系統(tǒng)視圖是干什么呢、都定義在哪呢、一些使用例子等內(nèi)容,需要的朋友可以參考下2015-02-02
SQL Server數(shù)據(jù)庫(kù)的死鎖詳細(xì)說(shuō)明
死鎖是指在一組進(jìn)程中的各個(gè)進(jìn)程均占有不會(huì)釋放的資源,但因互相申請(qǐng)被其他進(jìn)程所站用不會(huì)釋放的資源而處于的一種永久等待,下面這篇文章主要給大家介紹了關(guān)于SQL Server死鎖的相關(guān)資料,需要的朋友可以參考下2024-07-07
透明數(shù)據(jù)加密(TDE)庫(kù)的備份和還原
對(duì)于包含敏感數(shù)據(jù)的庫(kù),要實(shí)現(xiàn)備份加密。即備份文件別人拿到也不能還原和查看其中的數(shù)據(jù)2012-07-07
SQL?Server中啟用SA賬戶(hù)的最新詳細(xì)教程
在安裝好SQL?Server后,默認(rèn)sa用戶(hù)是禁用且也沒(méi)有啟用SQL?Server登陸驗(yàn)證,這需要手動(dòng)開(kāi)啟,下面這篇文章主要給大家介紹了關(guān)于SQL?Server中啟用SA賬戶(hù)的最新詳細(xì)教程,需要的朋友可以參考下2024-04-04
mssql中得到當(dāng)天數(shù)據(jù)的語(yǔ)句
mssql中得到當(dāng)天數(shù)據(jù)的語(yǔ)句...2007-08-08
sqlserver 中時(shí)間為空的處理小結(jié)
sql server中常常需要使用DateTime類(lèi)型的字段。當(dāng)此類(lèi)型字段值為空時(shí),常常出現(xiàn)各種異常2011-10-10
SQL Server的FileStream和FileTable深入剖析
互聯(lián)網(wǎng)時(shí)代數(shù)據(jù)是爆炸式增長(zhǎng),我們常常需要把結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在一起。本文將介紹幾種解決方案2012-11-11
sql中 order by 和 group by的區(qū)別
這篇文章主要介紹了sql中 order by 和 group by的區(qū)別的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
SQL Server 日期相關(guān)資料詳細(xì)介紹
對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),日期處理或許簡(jiǎn)單,或許很難。結(jié)合自己過(guò)往的開(kāi)發(fā)經(jīng)驗(yàn)并整合網(wǎng)上的例子,總結(jié)出一些日期相關(guān)的操作,供自己備用及為大家分享2012-06-06

