Sql 数据库版本
我必须编写一个程序,它能够使用表版本将数据库带到特定的类型时刻。例如,从版本1移动到版本10或以其他方式。问题是我对这一章的理解很模糊,而学校的课程几乎对此一无所知。我试着用互联网来建立一个解决方案,但不知何故我被卡住了。请帮助我理解我做错了什么 表格版本,1列M,类型int 质疑Sql 数据库版本,sql,sql-server,Sql,Sql Server,我必须编写一个程序,它能够使用表版本将数据库带到特定的类型时刻。例如,从版本1移动到版本10或以其他方式。问题是我对这一章的理解很模糊,而学校的课程几乎对此一无所知。我试着用互联网来建立一个解决方案,但不知何故我被卡住了。请帮助我理解我做错了什么 表格版本,1列M,类型int 质疑 考虑到我想出了一个办法,但没有得到任何回应,我将把它作为回应发布,因为它可能会帮助其他学习计算机科学的学生 为了简化,我用这个模式命名了我的所有过程,即do_x和undo_x,其中x是int,其中do/undo_x是
考虑到我想出了一个办法,但没有得到任何回应,我将把它作为回应发布,因为它可能会帮助其他学习计算机科学的学生 为了简化,我用这个模式命名了我的所有过程,即do_x和undo_x,其中x是int,其中do/undo_x是成对的过程,例如do_1和undo_1创建一个表并销毁一个表
ALTER PROCEDURE [dbo].[goto_vs]
-- Add the parameters for the stored procedure here
@v int = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @i int
declare @toexec nvarchar(70)
set @i = (select version from version)
-- If the requested version is lower than the current one, downgrade.
while(@i > @v)
BEGIN
set @i = @i - 1
set @toexec = 'Undo_' + CONVERT(varchar,@i);
exec sp_executeSql @toexec
print @toexec
END
-- Otherwise, upgrade.
while(@i < @v)
BEGIN
set @toexec = 'Update_' + CONVERT(varchar, @i);
exec sp_executeSql @toexec
set @i = @i + 1
print @toexec
END
END
考虑到我想出了一个办法,但没有得到任何回应,我将把它作为回应发布,因为它可能会帮助其他学习计算机科学的学生 为了简化,我用这个模式命名了我的所有过程,即do_x和undo_x,其中x是int,其中do/undo_x是成对的过程,例如do_1和undo_1创建一个表并销毁一个表
ALTER PROCEDURE [dbo].[goto_vs]
-- Add the parameters for the stored procedure here
@v int = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @i int
declare @toexec nvarchar(70)
set @i = (select version from version)
-- If the requested version is lower than the current one, downgrade.
while(@i > @v)
BEGIN
set @i = @i - 1
set @toexec = 'Undo_' + CONVERT(varchar,@i);
exec sp_executeSql @toexec
print @toexec
END
-- Otherwise, upgrade.
while(@i < @v)
BEGIN
set @toexec = 'Update_' + CONVERT(varchar, @i);
exec sp_executeSql @toexec
set @i = @i + 1
print @toexec
END
END