SQL Server 2008 R2 を実行し、新しいデータベース (後でオフラインにして別の場所に保存できる) を作成するアーカイブ機能を作成し、プライマリ データベースからデータを取り出して新しい DB に入れ、最後に作成します。新しいテーブルでアーカイブされたデータを確認するためのプライマリ DB のビュー。
DBを作成し、新しいDBにアーカイブテーブルを作成し、プライマリDBからレコードをコピーしてアーカイブDBに入れ、プライマリDBからレコードを削除するスクリプトがあります。今、私はビューの作成をスクリプト化しようとしています:
declare @sql varchar(8000)
set @sql = 'create view [' + @srcdb + '].[dbo].[vw_artrans] as
select * from [' + @srcdb + '].[dbo].artrans
union
select * from [' + @archdb + '].[dbo].artrans'
exec (@sql)
ただし、DB の名前を渡してビューを作成することはできません。
だから私は代わりにこれを試しました:
declare @sql varchar(8000)
set @sql = 'use ' + @srcdb + '
go
create view [vw_artrans] as
select * from [' + @srcdb + '].[dbo].artrans
union
select * from [' + @archdb + '].[dbo].artrans'
exec (@sql)
しかし、今では GO ステートメントについて不平を言っています ( Incorrect syntax )。
アーカイブされたデータ用に作成されるデータベースの名前は、スクリプトで動的に決定される (@archdb
名前を含む) ため、DB 名でスクリプトを作成できず、2 番目のスクリプトを実行できません。