0
我似乎無法找到一個適當的解決方案來聲明本地表中的條件列。DECLARE @Local中的條件列TABLE
第二個表格有一個額外的列SnapshotURL
。
DECLARE @product_major_version int;
SELECT @product_major_version = CAST(SERVERPROPERTY('ProductMajorVersion') AS int);
IF (@product_major_version <= 12)
DECLARE @FileList TABLE
(
LogicalName NVARCHAR(128) NOT NULL
, PhysicalName NVARCHAR(260) NOT NULL
, Type CHAR(1) NOT NULL
, FileGroupName NVARCHAR(120) NULL
, Size NUMERIC(20, 0) NOT NULL
, MaxSize NUMERIC(20, 0) NOT NULL
, FileId BIGINT NULL
, CreateLSN NUMERIC(25, 0) NULL
, DropLSN NUMERIC(25, 0) NULL
, UniqueID UNIQUEIDENTIFIER NULL
, ReadOnlyLSN NUMERIC(25, 0) NULL
, ReadWriteLSN NUMERIC(25, 0) NULL
, BackupSizeInBytes BIGINT NULL
, SourceBlockSize INT NULL
, FileGroupId INT NULL
, LogGroupGUID UNIQUEIDENTIFIER NULL
, DifferentialBaseLSN NUMERIC(25, 0) NULL
, DifferentialBaseGUID UNIQUEIDENTIFIER NULL
, IsReadOnly BIT NULL
, IsPresent BIT NULL
, TDEThumbprint VARBINARY(32) NULL
);
ELSE
DECLARE @FileList TABLE
(
LogicalName NVARCHAR(128) NOT NULL
, PhysicalName NVARCHAR(260) NOT NULL
, Type CHAR(1) NOT NULL
, FileGroupName NVARCHAR(120) NULL
, Size NUMERIC(20, 0) NOT NULL
, MaxSize NUMERIC(20, 0) NOT NULL
, FileId BIGINT NULL
, CreateLSN NUMERIC(25, 0) NULL
, DropLSN NUMERIC(25, 0) NULL
, UniqueID UNIQUEIDENTIFIER NULL
, ReadOnlyLSN NUMERIC(25, 0) NULL
, ReadWriteLSN NUMERIC(25, 0) NULL
, BackupSizeInBytes BIGINT NULL
, SourceBlockSize INT NULL
, FileGroupId INT NULL
, LogGroupGUID UNIQUEIDENTIFIER NULL
, DifferentialBaseLSN NUMERIC(25, 0) NULL
, DifferentialBaseGUID UNIQUEIDENTIFIER NULL
, IsReadOnly BIT NULL
, IsPresent BIT NULL
, TDEThumbprint VARBINARY(32) NULL
, SnapshotURL NVARCHAR(360)
);
這種方法的問題是@FileList
聲明兩次。我不能使用ALTER TABLE
,因爲它不被支持。
我該如何解決這個問題?
刪除'if'條件並一直添加'SnapshotURL'列。這會比你想要的要好得多 –
這使我走上了正確的道路。很明顯,我需要做的就是讓'SnapshotURL'爲空 –