Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql DECLARE@Local表中的条件列_Sql_Sql Server_Tsql - Fatal编程技术网

Sql DECLARE@Local表中的条件列

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

对于在本地表中声明条件列,我似乎找不到合适的解决方案

第二个表有一个额外的列SnapshotURL

这种方法的问题是@FileList被声明了两次

我不能使用ALTER TABLE,因为它不受支持


我该如何解决这个问题?

这是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