Sql DECLARE@Local表中的条件列
对于在本地表中声明条件列,我似乎找不到合适的解决方案 第二个表有一个额外的列SnapshotURL 这种方法的问题是@FileList被声明了两次 我不能使用ALTER TABLE,因为它不受支持Sql DECLARE@Local表中的条件列,sql,sql-server,tsql,Sql,Sql Server,Tsql,对于在本地表中声明条件列,我似乎找不到合适的解决方案 第二个表有一个额外的列SnapshotURL 这种方法的问题是@FileList被声明了两次 我不能使用ALTER TABLE,因为它不受支持 我该如何解决这个问题?这是p的一个好建议ரதீப் 或者你可以用诱惑来代替 这是p的一个好建议ரதீப் 或者你可以用诱惑来代替 删除if条件并始终添加SnapshotURL列。那将比你所期待的要好得多。这将引导我走上正确的道路。显然,我所需要做的就是使SnapshotURL为Nullable删除if
我该如何解决这个问题?这是p的一个好建议ரதீப் 或者你可以用诱惑来代替
这是p的一个好建议ரதீப் 或者你可以用诱惑来代替
删除if条件并始终添加SnapshotURL列。那将比你所期待的要好得多。这将引导我走上正确的道路。显然,我所需要做的就是使SnapshotURL为Nullable删除if条件并始终添加SnapshotURL列。那将比你所期待的要好得多。这将引导我走上正确的道路。显然,我所需要做的就是使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)
);
DECLARE @product_major_version int;
SELECT @product_major_version = CAST(SERVERPROPERTY('ProductMajorVersion') AS int);
CREATE TABLE #FileList
(
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
);
IF (@product_major_version <= 12)
BEGIN
ALTER TABLE #FileList
Add SnapshotURL NVARCHAR(360)
END