【问题标题】:T-SQL Script errorsT-SQL 脚本错误
【发布时间】:2015-07-03 19:04:07
【问题描述】:

我正在尝试在存储过程下运行,但它却因以下错误而失败

2 行受影响)

(受影响的 1 行)

(1 行受影响)消息 102,级别 15,状态 1,过程 isp_ALTER_INDEX,第 108 行“列”附近的语法不正确。
消息 102,级别 15,状态 1,过程 isp_ALTER_INDEX,第 197 行“END”附近的语法不正确。
消息 2812,级别 16,状态 62,第 1 行找不到存储过程“isp_ALTER_INDEX”。


 USE master
    GO
    IF OBJECT_ID('dbo.DefragmentIndexes') IS NULL GOTO CreateTable
    DECLARE @ArchiveTableName SYSNAME = 'DefragmentIndexes_Old'
    IF EXISTS (SELECT * FROM sys.tables WHERE name = N'DefragmentIndexes_Old')
    DROP TABLE dbo.DefragmentIndexes_Old
    EXEC sp_rename N'dbo.DefragmentIndexes', @ArchiveTableName, N'OBJECT';
    DECLARE @indexes TABLE (LineID INT NOT NULL IDENTITY(1,1), index_name SYSNAME)
    INSERT @indexes
    SELECT i.name
    FROM sys.indexes i
    WHERE i.object_id = OBJECT_ID(@ArchiveTableName)
    AND i.index_id <> 1
    DECLARE @i INT, @index_name SYSNAME
    SELECT TOP(1) @i = LineId, @index_name = index_name FROM @indexes
    WHILE @i IS NOT NULL
    BEGIN
    EXEC('DROP INDEX ' + @ArchiveTableName + '.' + @index_name)
    DELETE @indexes WHERE LineID = @i
    SET @i = NULL
    SELECT TOP(1) @i = LineId, @index_name = index_name FROM @indexes
    END
    CreateTable:
    CREATE TABLE DefragmentIndexes
    (
    LineId INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    DatabaseName SYSNAME NOT NULL,
    SchemaName SYSNAME NOT NULL,
    TableName SYSNAME NOT NULL,
    IndexName SYSNAME NOT NULL,
    DefragmentDate datetime NOT NULL,
    PercentFragmented decimal(4, 2) NOT NULL,
    )
    GO
    IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name =
    'nci_DefragmentIndexes_DefragmentDate')
    CREATE INDEX nci_DefragmentIndexes_DefragmentDate
    ON DefragmentIndexes (DefragmentDate)
    INCLUDE (SchemaName, TableName)
    GO
    IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name =
    'nci_DefragmentIndexes_TableName_SchemaName')
    CREATE INDEX nci_DefragmentIndexes_TableName_SchemaName
    ON DefragmentIndexes (TableName, SchemaName)
    INCLUDE (DefragmentDate)
    IF OBJECT_ID(N'[dbo].[isp_ALTER_INDEX]') IS NOT NULL
    DROP PROC [dbo].[isp_ALTER_INDEX]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROC [dbo].[isp_ALTER_INDEX]
    (
    @dbName sysname,
    @statsMode varchar(8) = 'SAMPLED',
    @defragType varchar(10) = 'REORGANIZE',
    @minFragPercent int = 25,
    @maxFragPercent int = 100,
    @minRowCount int = 0,
    @logHistory bit = 0,
    @sortInTempdb bit = 0
    )
    AS
    SET NOCOUNT ON
    IF @statsMode NOT IN ('LIMITED', 'SAMPLED', 'DETAILED')
    BEGIN
    RAISERROR('@statsMode must be LIMITED, SAMPLED or DETAILED', 16, 1)
    RETURN
    END
    IF @defragType NOT IN ('REORGANIZE', 'REBUILD')
    BEGIN
    RAISERROR('@defragType must be REORGANIZE or REBUILD', 16, 1)
    RETURN
    END
    DECLARE
    @i int, @objectId int, @objectName sysname, @indexId int, @indexName
    sysname,
    @schemaName sysname, @partitionNumber int, @partitionCount int,
    @sql nvarchar(4000), @edition int, @parmDef nvarchar(500), @allocUnitType
    nvarchar(60),
    @indexType nvarchar(60), @online bit, @disabled bit, @dataType
    nvarchar(128),
    @charMaxLen int, @allowPageLocks bit, @lobData bit, @fragPercent float
    SELECT @edition = CONVERT(int, SERVERPROPERTY('EngineEdition'))
    SELECT
    IDENTITY(int, 1, 1) AS FragIndexId,
    [object_id] AS ObjectId,
    index_id AS IndexId,
    avg_fragmentation_in_percent AS FragPercent,
    record_count AS RecordCount,
    partition_number AS PartitionNumber,
    index_type_desc AS IndexType,
    alloc_unit_type_desc AS AllocUnitType
    INTO #FragIndex
    FROM sys.dm_db_index_physical_stats (DB_ID(@dbName), NULL, NULL, NULL,
    @statsMode)
    WHERE
    avg_fragmentation_in_percent > @minFragPercent AND
    avg_fragmentation_in_percent < @maxFragPercent AND
    index_id > 0 AND
    index_level = 0
    ORDER BY ObjectId
    IF @statsMode IN ('SAMPLED', 'DETAILED')
    DELETE FROM #FragIndex
    WHERE RecordCount < @minRowCount
    SELECT @i = MIN(FragIndexId)
    FROM #FragIndex
    SELECT
    @objectId = ObjectId,
    @indexId = IndexId,
    @fragPercent = FragPercent,
    @partitionNumber = PartitionNumber,
    @indexType = IndexType,
    @allocUnitType = AllocUnitType
    FROM #FragIndex
    WHERE FragIndexId = @i
    WHILE @@ROWCOUNT <> 0
    BEGIN
    SET @sql = '
    SELECT @objectName = o.[name], @schemaName = s.[name]
    FROM ' + QUOTENAME(@dbName) + '.sys.objects o
    JOIN ' + QUOTENAME(@dbName) + '.sys.schemas s
    ON s.schema_id = o.schema_id
    WHERE o.[object_id] = @objectId'
    SET @parmDef = N'@objectId int, @objectName sysname OUTPUT, @schemaName
    sysname OUTPUT'
    EXEC sp_executesql
    @sql, @parmDef, @objectId = @objectId,
    @objectName = @objectName OUTPUT, @schemaName = @schemaName OUTPUT
    SET @sql = '
    SELECT @indexName = [name], @disabled = is_disabled, @allowPageLocks =
    allow_page_locks
    FROM ' + QUOTENAME(@dbName) + '.sys.indexes
    WHERE [object_id] = @objectId AND index_id = @indexId'
    SET @parmDef = N'
    @objectId int, @indexId int, @indexName sysname OUTPUT,
    @disabled bit OUTPUT, @allowPageLocks bit OUTPUT'
    EXEC sp_executesql
    @sql, @parmDef, @objectId = @objectId, @indexId = @indexId,
    @indexName = @indexName OUTPUT, @disabled = @disabled OUTPUT,
    @allowPageLocks = @allowPageLocks OUTPUT
    SET @lobData = 0
    IF @indexType = 'CLUSTERED INDEX'
    BEGIN
    SET @sql = '
    SELECT @lobData = 1
    FROM ' + QUOTENAME(@dbName) + '.INFORMATION_SCHEMA.COLUMNS c
    WHERE TABLE_SCHEMA = @schemaName AND
    TABLE_NAME = @objectName AND
    (DATA_TYPE IN (''text'', ''ntext'', ''image'') OR
    CHARACTER_MAXIMUM_LENGTH = -1)'
    SET @parmDef = N'@schemaName sysname, @objectName sysname, @lobData
    bit OUTPUT'
    EXEC sp_executesql
    @sql, @parmDef, @schemaName = @schemaName, @objectName =
    @objectName,
    @lobData = @lobData OUTPUT
    END
    columns
    ELSE IF @indexType = 'NONCLUSTERED INDEX'
    BEGIN
    SET @sql = '
    SELECT @lobData = 1
    FROM ' + QUOTENAME(@dbName) + '.sys.indexes i
    JOIN ' + QUOTENAME(@dbName) + '.sys.index_columns ic
    ON i.object_id = ic.object_id
    JOIN ' + QUOTENAME(@dbName) + '.INFORMATION_SCHEMA.COLUMNS c
    ON ic.column_id = c.ORDINAL_POSITION
    WHERE c.TABLE_SCHEMA = @schemaName AND
    c.TABLE_NAME = @objectName AND
    i.name = @indexName AND
    ic.is_included_column = 1 AND
    (c.DATA_TYPE IN (''text'', ''ntext'', ''image'')
    OR c.CHARACTER_MAXIMUM_LENGTH = -1)'
    SET @parmDef = N'@schemaName sysname, @objectName sysname,
    @indexName sysname, @lobData bit OUTPUT'
    EXEC sp_executesql
    @sql, @parmDef, @schemaName = @schemaName, @objectName =
    @objectName,
    @indexName = @indexName, @lobData = @lobData OUTPUT
    END
    SET @sql = '
    SELECT @partitionCount = COUNT(*)
    FROM ' + QUOTENAME(@dbName) + '.sys.partitions
    WHERE [object_id] = @objectId AND index_id = @indexId'
    SET @parmDef = N'@objectId int, @indexId int, @partitionCount int OUTPUT'
    EXEC sp_executesql
    @sql, @parmDef, @objectId = @objectId, @indexId = @indexId,
    @partitionCount = @partitionCount OUTPUT
    IF @edition = 3 AND (@defragType = 'REBUILD' OR (@defragType =
    'REORGANIZE' AND @allowPageLocks = 0))
    BEGIN
    SET @online =
    CASE
    WHEN @indexType IN ('XML INDEX', 'PRIMARY XML
    INDEX') THEN 0
    WHEN @indexType = 'NONCLUSTERED INDEX' AND
    @allocUnitType = 'LOB_DATA' THEN 0
    WHEN @lobData = 1 THEN 0
    WHEN @disabled = 1 THEN 0
    WHEN @partitionCount > 1 THEN 0
    ELSE 1
    END
    END
    ELSE
    SET @online = 0
    SET @sql = 'ALTER INDEX ' + QUOTENAME(@indexName) + ' ON ' +
    QUOTENAME(@dbName) + '.' +
    QUOTENAME(@schemaName) + '.' + QUOTENAME(@objectName) +
    CASE
    WHEN @defragType = ' REORGANIZE' AND @allowPageLocks = 0 THEN
    ' REBUILD'
    ELSE ' ' + @defragType
    END
    IF @online = 1 OR @sortInTempdb = 1
    BEGIN
    SET @sql = @sql + ' WITH (' +
    CASE
    WHEN @online = 1 AND @sortInTempdb = 1 THEN 'ONLINE =
    ON, SORT_IN_TEMPDB = ON'
    WHEN @online = 1 AND @sortInTempdb = 0 THEN 'ONLINE =
    ON'
    WHEN @online = 0 AND @sortInTempdb = 1 THEN
    'SORT_IN_TEMPDB = ON'
    END + ')'
    END
    IF @partitionCount > 1 AND @disabled = 0 AND @indexType <> 'XML INDEX'
    SET @sql = @sql + ' PARTITION = ' + CAST(@partitionNumber AS
    varchar(10))
    EXEC (@SQL)
    IF @logHistory = 1
    INSERT INTO DefragmentIndexes (DatabaseName, SchemaName, TableName,
    IndexName, DefragmentDate, PercentFragmented)
    VALUES(@dbName, @schemaName, @objectName, @indexName, GETDATE(),
    @fragPercent)
    SELECT @i = MIN(FragIndexId)
    FROM #FragIndex
    WHERE FragIndexId > @i
    SELECT
    @objectId = ObjectId,
    @indexId = IndexId,
    @fragPercent = FragPercent,
    @partitionNumber = PartitionNumber,
    @indexType = IndexType,
    @allocUnitType = AllocUnitType
    FROM #FragIndex
    WHERE FragIndexId = @i
    END
    GO
    EXEC isp_ALTER_INDEX
    @dbName = 'MODEV',
    @statsMode = 'SAMPLED',
    @defragType = 'REBUILD',
    @minFragPercent = 1,
    @maxFragPercent = 100,
    @minRowCount = 10,
    @logHistory = 1,
    @sortInTempdb = 1
    GO

【问题讨论】:

  • 嗯,你有 END columns ELSE 这是无效的语法..
  • 谢谢,我将如何纠正这个问题?
  • 或者首先查看您最初获取脚本的网站?
  • 我重新格式化并修复了基本错误,而没有检查其背后的整个逻辑。它只是一堆没有任何格式或结构的文本。

标签: sql-server tsql stored-procedures


【解决方案1】:

首先。只是糟糕的代码格式!难怪您不会在此批量代码中看到任何错误。有一些基本的代码错误。我在下面的声明中修复了它们。其中一个就是这样的:

EXEC sp_executesql
    @sql, @parmDef, @schemaName = @schemaName, @objectName =
    @objectName,
    @lobData = @lobData OUTPUT
    END
columns -- Why columns? This has no context!
ELSE ...

试试这个:

USE master
GO

IF OBJECT_ID('dbo.DefragmentIndexes') IS NULL GOTO CreateTable

DECLARE @ArchiveTableName SYSNAME = 'DefragmentIndexes_Old'

IF EXISTS (SELECT * FROM sys.tables WHERE name = N'DefragmentIndexes_Old')
    DROP TABLE dbo.DefragmentIndexes_Old

EXEC sp_rename N'dbo.DefragmentIndexes', @ArchiveTableName, N'OBJECT';

DECLARE @indexes TABLE (LineID INT NOT NULL IDENTITY(1,1), index_name SYSNAME)

INSERT @indexes
    SELECT i.name
    FROM sys.indexes i
    WHERE i.object_id = OBJECT_ID(@ArchiveTableName)
        AND i.index_id <> 1

DECLARE @i INT, @index_name SYSNAME

SELECT TOP(1) @i = LineId, @index_name = index_name FROM @indexes

WHILE @i IS NOT NULL BEGIN
    EXEC('DROP INDEX ' + @ArchiveTableName + '.' + @index_name)
    DELETE @indexes WHERE LineID = @i
    SET @i = NULL
    SELECT TOP(1) @i = LineId, @index_name = index_name FROM @indexes
END

CreateTable:
CREATE TABLE DefragmentIndexes
(
    LineId INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    DatabaseName SYSNAME NOT NULL,
    SchemaName SYSNAME NOT NULL,
    TableName SYSNAME NOT NULL,
    IndexName SYSNAME NOT NULL,
    DefragmentDate datetime NOT NULL,
    PercentFragmented decimal(4, 2) NOT NULL,
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'nci_DefragmentIndexes_DefragmentDate')
CREATE INDEX nci_DefragmentIndexes_DefragmentDate
    ON DefragmentIndexes (DefragmentDate)
    INCLUDE (SchemaName, TableName)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name= 'nci_DefragmentIndexes_TableName_SchemaName')
CREATE INDEX nci_DefragmentIndexes_TableName_SchemaName
    ON DefragmentIndexes (TableName, SchemaName)
    INCLUDE (DefragmentDate)


IF OBJECT_ID(N'[dbo].[isp_ALTER_INDEX]') IS NOT NULL
    DROP PROC [dbo].[isp_ALTER_INDEX]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROC [dbo].[isp_ALTER_INDEX]
    @dbName sysname,
    @statsMode varchar(8) = 'SAMPLED',
    @defragType varchar(10) = 'REORGANIZE',
    @minFragPercent int = 25,
    @maxFragPercent int = 100,
    @minRowCount int = 0,
    @logHistory bit = 0,
    @sortInTempdb bit = 0
AS BEGIN
    SET NOCOUNT ON

    IF @statsMode NOT IN ('LIMITED', 'SAMPLED', 'DETAILED') BEGIN
        RAISERROR('@statsMode must be LIMITED, SAMPLED or DETAILED', 16, 1)
        RETURN
    END

    IF @defragType NOT IN ('REORGANIZE', 'REBUILD') BEGIN
        RAISERROR('@defragType must be REORGANIZE or REBUILD', 16, 1)
        RETURN
    END

    DECLARE @i int, @objectId int, @objectName sysname, @indexId int, @indexName sysname,
            @schemaName sysname, @partitionNumber int, @partitionCount int, @sql nvarchar(4000), 
            @edition int, @parmDef nvarchar(500), @allocUnitType nvarchar(60), @indexType nvarchar(60), 
            @online bit, @disabled bit, @dataType nvarchar(128), @charMaxLen int, @allowPageLocks bit, 
            @lobData bit, @fragPercent float

    SELECT @edition = CONVERT(int, SERVERPROPERTY('EngineEdition'))

    SELECT IDENTITY(int, 1, 1) AS FragIndexId,
        [object_id] AS ObjectId,
        index_id AS IndexId,
        avg_fragmentation_in_percent AS FragPercent,
        record_count AS RecordCount,
        partition_number AS PartitionNumber,
        index_type_desc AS IndexType,
        alloc_unit_type_desc AS AllocUnitType
    INTO #FragIndex
    FROM sys.dm_db_index_physical_stats (DB_ID(@dbName), NULL, NULL, NULL, @statsMode)
    WHERE avg_fragmentation_in_percent > @minFragPercent AND
        avg_fragmentation_in_percent < @maxFragPercent AND
        index_id > 0 AND
        index_level = 0
    ORDER BY ObjectId

    IF @statsMode IN ('SAMPLED', 'DETAILED')
        DELETE FROM #FragIndex
        WHERE RecordCount < @minRowCount

    SELECT @i = MIN(FragIndexId)
    FROM #FragIndex

    SELECT @objectId = ObjectId,
        @indexId = IndexId,
        @fragPercent = FragPercent,
        @partitionNumber = PartitionNumber,
        @indexType = IndexType,
        @allocUnitType = AllocUnitType
    FROM #FragIndex
    WHERE FragIndexId = @i

    WHILE @@ROWCOUNT <> 0 BEGIN

        SET @sql = 'SELECT @objectName = o.[name], @schemaName = s.[name]
        FROM ' + QUOTENAME(@dbName) + '.sys.objects o
        JOIN ' + QUOTENAME(@dbName) + '.sys.schemas s
        ON s.schema_id = o.schema_id
        WHERE o.[object_id] = @objectId'

        SET @parmDef = N'@objectId int, @objectName sysname OUTPUT, @schemaName sysname OUTPUT'

        EXEC sp_executesql @sql, @parmDef, @objectId = @objectId, @objectName = @objectName OUTPUT, 
            @schemaName = @schemaName OUTPUT

        SET @sql = 'SELECT @indexName = [name], @disabled = is_disabled, @allowPageLocks = allow_page_locks
            FROM ' + QUOTENAME(@dbName) + '.sys.indexes
            WHERE [object_id] = @objectId AND index_id = @indexId'

        SET @parmDef = N'@objectId int, @indexId int, @indexName sysname OUTPUT, @disabled bit OUTPUT, @allowPageLocks bit OUTPUT'

        EXEC sp_executesql @sql, @parmDef, @objectId = @objectId, @indexId = @indexId, @indexName = @indexName OUTPUT, @disabled = @disabled OUTPUT,
            @allowPageLocks = @allowPageLocks OUTPUT

        SET @lobData = 0

        IF @indexType = 'CLUSTERED INDEX' BEGIN

            SET @sql = '
                SELECT @lobData = 1
                FROM ' + QUOTENAME(@dbName) + '.INFORMATION_SCHEMA.COLUMNS c
                WHERE TABLE_SCHEMA = @schemaName AND
                TABLE_NAME = @objectName AND
                (DATA_TYPE IN (''text'', ''ntext'', ''image'') OR
                CHARACTER_MAXIMUM_LENGTH = -1)'
            SET @parmDef = N'@schemaName sysname, @objectName sysname, @lobData bit OUTPUT'
            EXEC sp_executesql @sql, @parmDef, @schemaName = @schemaName, @objectName = @objectName, 
                @lobData = @lobData OUTPUT
        END
        ELSE IF @indexType = 'NONCLUSTERED INDEX'
        BEGIN
            SET @sql = 'SELECT @lobData = 1
                FROM ' + QUOTENAME(@dbName) + '.sys.indexes i
                JOIN ' + QUOTENAME(@dbName) + '.sys.index_columns ic
                        ON i.object_id = ic.object_id
                JOIN ' + QUOTENAME(@dbName) + '.INFORMATION_SCHEMA.COLUMNS c
                        ON ic.column_id = c.ORDINAL_POSITION
                WHERE c.TABLE_SCHEMA = @schemaName AND
                    c.TABLE_NAME = @objectName AND
                    i.name = @indexName AND
                    ic.is_included_column = 1 AND
                    (c.DATA_TYPE IN (''text'', ''ntext'', ''image'')
                    OR c.CHARACTER_MAXIMUM_LENGTH = -1)'

            SET @parmDef = N'@schemaName sysname, @objectName sysname, @indexName sysname, @lobData bit OUTPUT'

            EXEC sp_executesql @sql, @parmDef, @schemaName = @schemaName, @objectName = @objectName,
                @indexName = @indexName, @lobData = @lobData OUTPUT
        END

        SET @sql = 'SELECT @partitionCount = COUNT(*)
            FROM ' + QUOTENAME(@dbName) + '.sys.partitions
            WHERE [object_id] = @objectId AND index_id = @indexId'

        SET @parmDef = N'@objectId int, @indexId int, @partitionCount int OUTPUT'

        EXEC sp_executesql @sql, @parmDef, @objectId = @objectId, @indexId = @indexId, 
            @partitionCount = @partitionCount OUTPUT

        IF @edition = 3 AND (@defragType = 'REBUILD' OR (@defragType = 'REORGANIZE' AND @allowPageLocks = 0)) BEGIN
            SET @online = CASE  WHEN @indexType IN ('XML INDEX', 'PRIMARY XML INDEX') THEN 0
                                WHEN @indexType = 'NONCLUSTERED INDEX' AND @allocUnitType = 'LOB_DATA' THEN 0
                                WHEN @lobData = 1 THEN 0
                                WHEN @disabled = 1 THEN 0
                                WHEN @partitionCount > 1 THEN 0
                                ELSE 1
                            END
        END
        ELSE
            SET @online = 0

        SET @sql = 'ALTER INDEX ' + QUOTENAME(@indexName) + ' ON ' + QUOTENAME(@dbName) + '.' + 
                    QUOTENAME(@schemaName) + '.' + QUOTENAME(@objectName) +
                    CASE    WHEN @defragType = ' REORGANIZE' AND @allowPageLocks = 0 
                            THEN ' REBUILD'
                            ELSE ' ' + @defragType
                    END

        IF @online = 1 OR @sortInTempdb = 1 BEGIN
            SET @sql = @sql + ' WITH (' +
                    CASE    WHEN @online = 1 AND @sortInTempdb = 1 THEN 'ONLINE = ON, SORT_IN_TEMPDB = ON'
                            WHEN @online = 1 AND @sortInTempdb = 0 THEN 'ONLINE = ON'
                            WHEN @online = 0 AND @sortInTempdb = 1 THEN 'SORT_IN_TEMPDB = ON'
                    END + ')'
        END

        IF @partitionCount > 1 AND @disabled = 0 AND @indexType <> 'XML INDEX'
            SET @sql = @sql + ' PARTITION = ' + CAST(@partitionNumber AS varchar(10))

        EXEC (@SQL)

        IF @logHistory = 1
            INSERT INTO DefragmentIndexes (DatabaseName, SchemaName, TableName, IndexName, DefragmentDate, PercentFragmented)
            VALUES(@dbName, @schemaName, @objectName, @indexName, GETDATE(), @fragPercent)

        SELECT @i = MIN(FragIndexId) 
        FROM #FragIndex 
        WHERE FragIndexId > @i

        SELECT @objectId = ObjectId, @indexId = IndexId, @fragPercent = FragPercent, @partitionNumber = PartitionNumber, 
                @indexType = IndexType, @allocUnitType = AllocUnitType
        FROM #FragIndex
        WHERE FragIndexId = @i
    END
END
GO
EXEC isp_ALTER_INDEX
@dbName = 'MODEV',
@statsMode = 'SAMPLED',
@defragType = 'REBUILD',
@minFragPercent = 1,
@maxFragPercent = 100,
@minRowCount = 10,
@logHistory = 1,
@sortInTempdb = 1
GO

【讨论】:

  • 谢谢大家,通过删除该列线来修复它。是的,我知道格式不好,但是我没有创建它,这是我们的一位供应商在 PDF 文件上使用的:(
  • 啊,好吧,这描述了错误的格式。但无论如何,即使是 PDF 也可以有格式。 :-D 无论如何。我给你格式化了。您可以使用此代码,这样您就不必再次对其进行格式化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多