>DECLARE @indexName nvarchar(128) >DECLARE @dropIndexSql nvarchar(4000) >DECLARE @Constraint_Name nvarchar(128) >DECLARE @SQL varchar(4000) >DECLARE @Message varchar(400) > >Raiserror('Removing primary key...',0,1) With Nowait > >SELECT @Constraint_Name = Constraint_Name FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE Table_Name='Reply' >if @@rowcount = 1 > BEGIN > SET @SQL='ALTER TABLE Reply DROP Constraint '+@Constraint_Name > BEGIN TRY > EXECUTE(@SQL) > END TRY > BEGIN CATCH > SET @Message='Error: Problem removing index '+@Constraint_Name > Raiserror(@Message,0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait > END CATCH > END > >DECLARE tableIndexes CURSOR LOCAL FOR >SELECT name from sys.indexes where is_primary_key=0 and object_name(object_id)='Reply' > >OPEN tableIndexes >FETCH NEXT FROM tableIndexes INTO @indexName >WHILE @@fetch_status = 0 >BEGIN > SET @dropIndexSql = N'DROP INDEX [Reply].[' + @indexName+']' > BEGIN TRY > SET @Message=@dropIndexSql > Raiserror(@Message,0,1) With Nowait > EXEC sp_executesql @dropIndexSql > END TRY > BEGIN CATCH > SET @Message='Error: Problem removing index '+@indexName+' from Reply' > Raiserror(@Message,0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait > END CATCH > FETCH NEXT FROM tableIndexes INTO @indexName >END > >CLOSE tableIndexes >DEALLOCATE tableIndexes > >Raiserror('Creating primary key Numero...',0,1) With Nowait > >BEGIN TRY > ALTER TABLE [Reply] > ADD CONSTRAINT ReplyNumero PRIMARY KEY (Numero) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating primary key Numero...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index AddUser...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [AddUser] ON [Reply] ([AddUser]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index AddUser...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index AddDate...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [AddDate] ON [Reply] ([AddDate]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index AddDate...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index ModUser...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [ModUser] ON [Reply] ([ModUser]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index ModUser...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index ModDate...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [ModDate] ON [Reply] ([ModDate]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index ModDate...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index NoThread...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [NoThread] ON [Reply] ([NoThread]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index NoThread...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index NoMember...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [NoMember] ON [Reply] ([NoMember]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index NoMember...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index Read...',0,1) With Nowait > >BEGIN TRY > CREATE INDEX [Read] ON [Reply] ([Read]) >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index Read...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index combo IndexCombo1...',0,1) With Nowait > >BEGIN TRY > IF NOT EXISTS (SELECT * FROM sys.filegroups WHERE Name='Reply') > ALTER DATABASE UniversalThread ADD FILEGROUP Reply > IF NOT EXISTS (SELECT * FROM sysfiles WHERE Name='Reply') > ALTER DATABASE UniversalThread ADD FILE (Name='Reply',FileName='d:\Data\Universal Thread\Reply.ndf') To FileGroup Reply > CREATE INDEX [IndexCombo1] ON [Reply] ([NoMember]) INCLUDE ([NoThread]) ON [Reply] >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index combo IndexCombo1...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH > >Raiserror('Creating index combo IndexCombo2...',0,1) With Nowait > >BEGIN TRY > IF NOT EXISTS (SELECT * FROM sys.filegroups WHERE Name='Reply') > ALTER DATABASE UniversalThread ADD FILEGROUP Reply > IF NOT EXISTS (SELECT * FROM sysfiles WHERE Name='Reply') > ALTER DATABASE UniversalThread ADD FILE (Name='Reply',FileName='d:\Data\Universal Thread\Reply.ndf') To FileGroup Reply > CREATE INDEX [IndexCombo2] ON [Reply] ([NoMember],[Read]) INCLUDE ([NoThread]) ON [Reply] >END TRY >BEGIN CATCH > Raiserror('Error: Problem creating index combo IndexCombo2...',0,1) With Nowait > SET @Message=ERROR_MESSAGE() > Raiserror(@Message,0,1) With Nowait >END CATCH >>
>DECLARE @NoMember Integer > >SET @NoMember=1 > >SELECT Thread.Numero,Thread.Title,Thread.Url,Thread.AddDate > FROM (SELECT TOP 10 Reply.NoThread FROM Reply (NOLOCK) > WHERE Reply.NoMember=@NoMember ORDER BY 1 DESC) Temp > INNER JOIN Thread ON Temp.NoThread=Thread.Numero >>
>CREATE INDEX [IndexCombo1] ON [Reply] ([NoMember]) INCLUDE ([NoThread]) ON [Reply] >