表名MSvo3ProVersion版本ID 项目名称ID 姓名名称 项目版本号 升级验证 是否生效
MSvo3Id Msvo3Msvo3id Msvo3ProjectName Msvo3Version Msvokey Msvo3IsUsed
int int navarchar(100) navarchar(100) navarchar(100) bit 1 1 DAS客服端 1.1 1.1_1.0 1
2 2 DAS服务器 1.1 1.1_1.0 0
需要得到此表中:Msvo3IsUsed=1的且项目版本号是最大的版本ID
结果:版本id=1(后面当条件查询) 版本号1.1(需要的数据)表名 MSVO4FileVersion
ID 程序版本ID 文件ID 文件版本 操作方式
MSVO4Id MSVO4MSVO3Id MSVO4MSVO2Id MSVO4Version MSVO4Type
int int int navarchar int
1 1 1 1.0 1
3 1 2 1.0 1需要得到此表中:程序版本ID=1(也就是上表中的最大版本ID)的文件ID
结果:文件ID=1和文件ID=2(也就是两个值)表名 MSVO2FileInfo
ID 主表ID 文件名称 文件类型 文件路径 说明
MSVO2Id MSVO2MSVO1Id MSVO2Name MSVO2FileType MSVO2Folder MSVO2Re
int int navarchar(100) navarchar(100) navarchar(300) navarchar(500)1 1 Update 文件夹 F:\新建文件夹 文件信息
2 2 update 文件夹 F:\新建文件夹 文件信息需要得到此表中:ID=1和ID=2的两条数据信息最后输出的是:
版本号:1.1
MSVO2FileInfo表中两条文件信息
MSvo3Id Msvo3Msvo3id Msvo3ProjectName Msvo3Version Msvokey Msvo3IsUsed
int int navarchar(100) navarchar(100) navarchar(100) bit 1 1 DAS客服端 1.1 1.1_1.0 1
2 2 DAS服务器 1.1 1.1_1.0 0
需要得到此表中:Msvo3IsUsed=1的且项目版本号是最大的版本ID
结果:版本id=1(后面当条件查询) 版本号1.1(需要的数据)表名 MSVO4FileVersion
ID 程序版本ID 文件ID 文件版本 操作方式
MSVO4Id MSVO4MSVO3Id MSVO4MSVO2Id MSVO4Version MSVO4Type
int int int navarchar int
1 1 1 1.0 1
3 1 2 1.0 1需要得到此表中:程序版本ID=1(也就是上表中的最大版本ID)的文件ID
结果:文件ID=1和文件ID=2(也就是两个值)表名 MSVO2FileInfo
ID 主表ID 文件名称 文件类型 文件路径 说明
MSVO2Id MSVO2MSVO1Id MSVO2Name MSVO2FileType MSVO2Folder MSVO2Re
int int navarchar(100) navarchar(100) navarchar(300) navarchar(500)1 1 Update 文件夹 F:\新建文件夹 文件信息
2 2 update 文件夹 F:\新建文件夹 文件信息需要得到此表中:ID=1和ID=2的两条数据信息最后输出的是:
版本号:1.1
MSVO2FileInfo表中两条文件信息
DECLARE @Id int
SELECT @id = MAX(MSvo3Id) FROM MSvo3ProVersion WHERE Msvo3IsUsed = 1SELECT * FROM MSVO2FileInfo m2 JOIN MSVO4FileVersion m4 ON m2.MSVO2Id = m4.MSVO4MSVO3Id JOIN
MSvo3ProVersion m3 ON m4.MSVO4MSVO3Id = @id
CREATE TABLE MSvo3ProVersion
(
MSvo3Id int,
Msvo3Msvo3id int,
Msvo3ProjectName nvarchar(100),
Msvo3Version nvarchar(100),
Msvokey nvarchar(100),
Msvo3IsUsed bit
)
INSERT MSvo3ProVersion
SELECT 3,1,N'DAS客服端',N'1.1',N'1.1_1.0',1
SELECT 2,2,N'DAS客服端',N'1.1',N'1.1_1.0',0
SELECT 1,1,N'DAS客服端',N'1.1',N'1.1_1.0',1SELECT * FROM MSvo3ProVersion
--
MSvo3Id Msvo3Msvo3id Msvo3ProjectName Msvo3Version Msvokey Msvo3IsUsed
-------------------------------------------------------------------------------
3 1 DAS客服端 1.1 1.1_1.0 1
2 2 DAS客服端 1.1 1.1_1.0 0
1 1 DAS客服端 1.1 1.1_1.0 1(所影响的行数为 3 行)CREATE TABLE MSVO4FileVersion
(
MSVO4Id int,
MSVO4MSVO3Id int,
MSVO4MSVO2Id int,
MSVO4Version nvarchar(100),
MSVO4Type int
)
INSERT INTO MSVO4FileVersion
SELECT 3,3,3,N'1.0',1
SELECT 3,1,2,N'1.0',1
SELECT 1,1,1,N'1.0',1SELECT * FROM MSVO4FileVersion
--
MSVO4Id MSVO4MSVO3Id MSVO4MSVO2Id MSVO4Version MSVO4Type
----------- ------------ ------------ ------------ -----------
3 3 3 1.0 1
3 1 2 1.0 1
1 1 1 1.0 1(所影响的行数为 3 行)CREATE TABLE MSVO2FileInfo
(
MSVO2Id int,
MSVO2MSVO1Id int,
MSVO2Name nvarchar(100),
MSVO2FileType nvarchar(100),
MSVO2Folder nvarchar(300),
MSVO2Re nvarchar(500)
)SELECT * FROM MSVO2FileInfo
--
MSVO2Id MSVO2MSVO1Id MSVO2Name MSVO2FileType MSVO2Folder MSVO2Re
----------- ------------ -------------------------------------------------------
3 2 Update 文件夹 F:\新建文件夹 文件信息
2 2 Update 文件夹 F:\新建文件夹 文件信息
1 1 Update 文件夹 F:\新建文件夹 文件信息(所影响的行数为 3 行)INSERT INTO MSVO2FileInfo
SELECT 3,2,N'Update',N'文件夹',N'F:\新建文件夹',N'文件信息'
SELECT 2,2,N'Update',N'文件夹',N'F:\新建文件夹',N'文件信息'
SELECT 1,1,N'Update',N'文件夹',N'F:\新建文件夹',N'文件信息'DECLARE @Id int
SELECT @id = MAX(MSvo3Id) FROM MSvo3ProVersion WHERE Msvo3IsUsed = 1
SELECT m3.Msvo3Version,m2.MSVO2Id,m2.MSVO2MSVO1Id,m2.MSVO2Name,m2.MSVO2FileType,m2.MSVO2Folder,
m2.MSVO2Re FROM MSVO2FileInfo m2 JOIN MSVO4FileVersion m4 ON m2.MSVO2Id = m4.MSVO4MSVO2Id JOIN
MSvo3ProVersion m3 ON m4.MSVO4MSVO3Id = m3.MSvo3Id AND m4.MSVO4MSVO3Id = @id--
Msvo3Version MSVO2Id MSVO2MSVO1Id MSVO2Name MSVO2FileType MSVO2Folder MSVO2Re
------------------------ ------------ ----------------------------------------------------------- -------
1.1 3 2 Update 文件夹 F:\新建文件夹 文件信息(所影响的行数为 1 行)
create table MSvo3ProVersion(
MSvo3Id int, Msvo3Msvo3id int,Msvo3ProjectName varchar(100)
, Msvo3Version varchar(100), Msvokey varchar(100),Msvo3IsUsed bit)
insert into MSvo3ProVersion
select 1,2,'DAS客服端' ,'1.1', '1.1_1.0', 1
union all
select 2, 2, 'DAS服务器', '1.1', '1.1_1.0', 0create table MSVO4FileVersion(
MSVO4Id int, MSVO4MSVO3Id int, MSVO4MSVO2Id int, MSVO4Version varchar(100), MSVO4Type int)
insert into MSVO4FileVersion
select 1, 1, 1, '1.0', 1
union all
select 3, 1, 2 ,'1.0', 1create table MSVO2FileInfo(
MSVO2Id int,MSVO2MSVO1Id int, MSVO2Name varchar(100), MSVO2FileType varchar(100), MSVO2Folder varchar(300), MSVO2Re varchar(500))
insert into MSVO2FileInfo
select 1, 1, 'Update','文件夹','F:\新建文件夹', '文件信息'
union all
select 2, 2, 'update', '文件夹', 'F:\新建文件夹', '文件信息'create proc P_GetVersionInfo
as
declare @MSvo3Id int
declare @Msvo3Version varchar(100)
select @MSvo3Id=MAX(MSvo3Id),@Msvo3Version=MAX(Msvo3Version) from MSvo3ProVersion
where Msvo3Version=(
select MAX(Msvo3Version) from MSvo3ProVersion
where Msvo3IsUsed=1 )
and Msvo3IsUsed=1
select @Msvo3Version as 版本号,MSVO2Re from MSVO2FileInfo
where MSVO2Id in (select MSVO4MSVO2Id from MSVO4FileVersion where MSVO4MSVO3Id=@MSvo3Id)------------------
exec P_GetVersionInfo
版本号 MSVO2Re
------- --------------
1.1 文件信息
1.1 文件信息(2 行受影响)
3 1 UPDATE 12 F:\新建文件夹 文件信息查出2条啊
Left Join Msvo4FileVersion
On Msvo4FileVersion.MSVO4MSVO3Id=Msvo3ProVersion.MSvo3Id
Left Join #TmpMSVO2FileInfo
On Msvo4FileVersion.MSVO4MSVO2Id=MSVO2FileInfo.MSVO2Id
Where Msvo3ProVersion.Msvo3Version=(select Max(Msvo3Version) Msvo3Version from Msvo3ProVersion Where Msvo3IsUsed=1 )我试了下这个语句也能得到要的东西