使用()进行最终重建时出现SQL语法错误

使用()进行最终重建时出现SQL语法错误,sql,sql-server,tsql,stored-procedures,syntax-error,Sql,Sql Server,Tsql,Stored Procedures,Syntax Error,你知道如何消除这个语法错误吗?这是整个过程的最后一个主题。我似乎不知道我错过了什么。当我尝试运行它时,不会发生其他错误 CREATE PROCEDURE pRebuildOrReorg ( @db VARCHAR(50) = 'AdventureWorksLT2012', @table VARCHAR(50) = 'SalesLT.Customer', @indexName VARCHAR(50) = 'IX_Customer_EmailAddress' ) AS D

你知道如何消除这个语法错误吗?这是整个过程的最后一个主题。我似乎不知道我错过了什么。当我尝试运行它时,不会发生其他错误

CREATE PROCEDURE pRebuildOrReorg
(
    @db VARCHAR(50) =  'AdventureWorksLT2012',
    @table VARCHAR(50) = 'SalesLT.Customer',
    @indexName VARCHAR(50) = 'IX_Customer_EmailAddress'
)
AS 
DECLARE @objID INT
DECLARE @dbID SMALLINT
DECLARE @indexID SMALLINT
DECLARE @avgFrag INT
DECLARE @cmd VARCHAR(100)
DECLARE @message VARCHAR(100)

-- 1. find the object id of the desired table
SET @objID = OBJECT_ID(@table)
SET @dbID = DB_ID(@db)
SET @IndexID = (SELECT index_id FROM sys.indexes WHERE name = @indexName)
-- 2. View the statistics for all indexes of the table
SELECT @avgFrag = avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID('AdventureWorksLT2012'),
  OBJECT_ID('SalesLT.Customer'),
 @IndexID, NULL , 'DETAILED')

if @avgFrag >= 30
BEGIN SET @cmd = 'ALTER INDEX ' + @indexName + ' ON ' + @table + ' STATISTICS_NORECOMPUTE = OFF)' 
EXEC (@cmd) 
SET @message = 'Reorganized Index ' + @indexName
ALTER INDEX PK_StoreContact_CustomerID_ContactID
  ON AdventureWorks.Sales.StoreContact
REORGANIZE 
END

else if @avgFrag < 30
BEGIN SET @cmd = 'ALTER INDEX ' + @indexName + ' ON ' + @table + ' STATISTICS_NORECOMPUTE = OFF)' 
EXEC (@cmd) 
SET @message = 'Rebuilt Index ' + @indexName
ALTER INDEX IX_StoreContact_ContactID
  ON AdventureWorks.Sales.StoreContact
REBUILD WITH(
fillfactor = 70,
online = ON
)

欢迎使用您的个人语法检查和调试服务

请在最后一行之后的新行上添加一个结尾

您是否下载了SQL Server Management Studio 2012及其改进的智能感知和错误检测功能