Complete: SetPackageInstallStateAction at: 2007/9/23 7:33:43, returned true
Running: DeterminePackageTransformsAction at: 2007/9/23 7:33:43
Complete: DeterminePackageTransformsAction at: 2007/9/23 7:33:43, returned true
Running: ValidateSetupPropertiesAction at: 2007/9/23 7:33:43
Complete: ValidateSetupPropertiesAction at: 2007/9/23 7:33:43, returned true
Running: OpenPipeAction at: 2007/9/23 7:33:43
Complete: OpenPipeAction at: 2007/9/23 7:33:43, returned false
Error: Action "OpenPipeAction" failed during execution.
Running: CreatePipeAction at: 2007/9/23 7:33:43
Complete: CreatePipeAction at: 2007/9/23 7:33:43, returned true
Running: RunRemoteSetupAction at: 2007/9/23 7:33:43
<Func Name='CProcessCtrl::GetInstallPath'>
<EndFunc Name='CProcessCtrl::GetInstallPath' Return='0' GetLastError='0'>
Error: 0x80070050 TaskScheduler::NewWorkItem for SQL Server Remote Setup
Error: 0x80070005 TaskSchedulerWorkItem failed to save the task [SQL Server Remote Setup ]
Complete: RunRemoteSetupAction at: 2007/9/23 7:33:43, returned false
Error: Action "RunRemoteSetupAction" failed during execution. Error information reported during run:
Attempting to determine log files for remote install.
Connection to remote computer's scheduler service.
Creating new workitem.
Deleting existing work item and trying again...
Starting remote setup onSQL1N2
Error: 80070005 Access is denied.
Running: PopulateMutatorDbAction at: 2007/9/23 7:33:43
Complete: PopulateMutatorDbAction at: 2007/9/23 7:33:43, returned true
Running: GenerateRequestsAction at: 2007/9/23 7:33:43
SQL_Engine = 3
SQL_Data_Files = -1
SQL_Replication = -1
SQL_FullText = -1
SQL_SharedTools = -1
SQL_BC_DEP = -1
Analysis_Server = -1
AnalysisDataFiles = -1
AnalysisSharedTools = -1
RS_Server = -1
RS_Web_Interface = -1
RS_SharedTools = -1
Notification_Services = -1
NS_Engine = -1
NS_Client = -1
SQL_DTS = -1
Client_Components = -1
Connectivity = -1
SQL_Tools90 = -1
SQL_WarehouseDevWorkbench = -1
SDK = -1
SQLXML = -1
Tools_Legacy = -1
TOOLS_BC_DEP = -1
SQL_SSMSEE = -1
SQL_Documentation = -1
SQL_BooksOnline = -1
SQL_DatabaseSamples = -1
SQL_AdventureWorksSamples = -1
SQL_AdventureWorksDWSamples = -1
SQL_AdventureWorksASSamples = -1
SQL_Samples = -1
Complete: GenerateRequestsAction at: 2007/9/23 7:33:44, returned true
Running: CreateProgressWindowAction at: 2007/9/23 7:33:44
Complete: CreateProgressWindowAction at: 2007/9/23 7:33:44, returned false
Error: Action "CreateProgressWindowAction" failed during execution.
Running: ScheduleActionAction at: 2007/9/23 7:33:44
Complete: ScheduleActionAction at: 2007/9/23 7:33:45, returned true
Skipped: InstallASAction.11
Waiting for actions from remote setup(s)
Breaking wait state and aborting package due to cancel code received: 1602
Remote setup(s) are ready
Notify package action is determined: 1602
Error Code: 0x800700e9 (233)
Windows Error Text: No process is on the other end of the pipe.
Source File Name: remotemessageliboverlappedpipelistener.cpp
Compiler Timestamp: Sat Oct 7 09:43:54 2006
Function Name: sqls:verlappedPipeListener::writePipe
Source Line Number: 294
Notification failed to send.
---- Context -----------------------------------------------
sqls::HostSetupPackageInstallerSynch::installAction
Removing machine from list of targets to sync.
Skipped: Action "InstallASAction.11" was not run. Information reported during analysis:
All installs have been cancelled, so package: "sqlsupport", referred by package: "as", will not be installed.
Skipped: InstallASAction.18
Skipped: Action "InstallASAction.18" was not run. Information reported during analysis:
All installs have been cancelled, so package: "owc11", referred by package: "as", will not be installed.
Skipped: InstallASAction.22
Skipped: Action "InstallASAction.22" was not run. Information reported during analysis:
All installs have been cancelled, so package: "bcRedist", referred by package: "as", will not be installed.
Skipped: InstallASAction.9
Skipped: Action "InstallASAction.9" was not run. Information reported during analysis:
All installs have been cancelled, so package: "msxml6", referred by package: "as", will not be installed.
Skipped: InstallDTSAction
Skipped: Action "InstallDTSAction" was not run. Information reported during analysis:
All installs have been cancelled, so package: "dts", will not be installed.
Skipped: InstallDTSAction.11
Skipped: Action "InstallDTSAction.11" was not run. Information reported during analysis:
All installs have been cancelled, so package: "sqlsupport", referred by package: "dts", will not be installed.
Skipped: InstallDTSAction.12
Skipped: Action "InstallDTSAction.12" was not run. Information reported during analysis:
All installs have been cancelled, so package: "sqlncli", referred by package: "dts", will not be installed.
Skipped: InstallDTSAction.18
Skipped: Action "InstallDTSAction.18" was not run. Information reported during analysis:
All installs have been cancelled, so package: "owc11", referred by package: "dts", will not be installed.
Skipped: InstallDTSAction.22
Skipped: Action "InstallDTSAction.22" was not run. Information reported during analysis:
All installs have been cancelled, so package: "bcRedist", referred by package: "dts", will not be installed.
Skipped: InstallDTSAction.9
Skipped: Action "InstallDTSAction.9" was not run. Information reported during analysis:
All installs have been cancelled, so package: "msxml6", referred by package: "dts", will not be installed.
Skipped: InstallNSAction
Skipped: Action "InstallNSAction" was not run. Information reported during analysis:
All installs have been cancelled, so package: "ns", will not be installed.
Skipped: InstallNSAction.11
Skipped: Action "InstallNSAction.11" was not run. Information reported during analysis:
All installs have been cancelled, so package: "sqlsupport", referred by package: "ns", will not be installed.
Skipped: InstallNSAction.12
Skipped: Action "InstallNSAction.12" was not run. Information reported during analysis:
All installs have been cancelled, so package: "sqlncli", referred by package: "ns", will not be installed.
Skipped: InstallNSAction.18
Skipped: Action "InstallNSAction.18" was not run. Information reported during analysis:
All installs have been cancelled, so package: "owc11", referred by package: "ns", will not be installed.
Skipped: InstallNSAction.22
Skipped: Action "InstallNSAction.22" was not run. Information reported during analysis:
All installs have been cancelled, so package: "bcRedist", referred by package: "ns", will not be installed.
Skipped: InstallNSAction.9
Skipped: Action "InstallNSAction.9" was not run. Information reported during analysis:
All installs have been cancelled, so package: "msxml6", referred by package: "ns", will not be installed.
Skipped: InstallRSAction.11
Skipped: Action "InstallRSAction.11" was not run. Information reported during analysis:
All installs have been cancelled, so package: "sqlsupport", referred by package: "rs", will not be installed.
Skipped: InstallRSAction.18
Skipped: Action "InstallRSAction.18" was not run. Information reported during analysis:
All installs have been cancelled, so package: "owc11", referred by package: "rs", will not be installed.
Skipped: InstallRSAction.22
Skipped: Action "InstallRSAction.22" was not run. Information reported during analysis:
All installs have been cancelled, so package: "bcRedist", referred by package: "rs", will not be installed.
Skipped: InstallSqlAction
Clustered feature detected: SQL_Engine
Clustered feature detected: SQL_FullText
Loaded DLL:C:Program FilesMicrosoft SQL Server90Setup Bootstrapsqlsval.dll Version:2005.90.3042.0
Windows Error Text: User cancelled installation.
Source File Name: sqlchainingsqlchainingactions.cpp
Compiler Timestamp: Thu Nov 16 20:32:00 2006
Function Name: sqls::ReportChainingResults:erform
Source Line Number: 3667
---- Context -----------------------------------------------
sqls::RunRemoteSetupAction::waitForRemoteSetupComplete
king package: "patchRS2000" as failed due to cancel code received from cancel source: 1602
sqls
Delay load of action "UploadDrWatsonLogAction" returned nothing. No action will occur as a result.
Message pump returning: 1602
I need to rebuild a corrupted/deleted master database in SQL Server 2005 SP2.
When I run setup.exe from the install media as directed by SQL Books Online, I get to the point where it says the instance is a later version and setup cannot continue. Rerunning the SP2 installer, the instances cannot be selected for upgrade (and it ignores the command line options for the original installer).
How to proceed?
Also, it would seem simpler to have a detach, copy and attach the system databases process, rather than run the installer. (I realize you can stop the instance, copy files, restart the instance; but that's not "high availability".)
Hi, I'm testing my recovery on a sql server 2005 database. The server has been restored, which includes the OS and sql server 2005 installation (binaries, full tape restore). The tape restore didn't put back the master.mdf and other .mdf files (can't be backed up when open), so I need to rebuild the master and do a database recovery on it and the other supporting databases (yes, I have database backups). I have installed the sql 2005 setup CDs in a folder and run the following command to rebuild the master, but nothing happens, it pauses for a couple of minutes before it returns to the prompt, but it does not put and new master.mdf files in the folder and I can't start the service in single user mode. "start /wait setup.exe /qn INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=mypassword" Anybody have any procedures for a full sql server 2005 recovery or suggestions on this, please post.
How I can rebuild master db to change the Code Page of the current SQL7 , to convert my SQL7 from code page 850 to 1252 ? I have huge data in the old code page dbs , Does rebuild the master db mean reinsert the data again ?
In SQL Server 2005 Express, how do I rebuild the master database?
I am receiving the following error messages.
The log scan number (888:136:1) passed to log scan in database 'master' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.
AND
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
I tried going through Add and Remove Programs. It did not recognize anything wrong. It did nothing.
I tried 'setup' from the install media. It said to go to 'Add and Remove Programs.'
In SQL Server 2005 Express, how do I rebuild the master database?
If one is regularly taking backups of system databases, when does it become necessary to rebuild the master database. I am looking for a situation where rebuilding the master is preferred to restoring it from backup.
I'm trying to rebuild my master database for sql server 2000. The process of rebuilding stared fine. But it is almost 4 hours since it got started. Performing it on a test system. Got doubtful and started the same on another test system. Issue is same and it is almost 2 hours. The Db size is less than 100 MB in both cases. IS IT NORMAL? I've tried the same for SQL SERVER 2005 and it got finished in couple of minutes. Please advise.
Is there a way (besides "ALTER DATABASE COLLATE ...") to change collation name for the whole database? I tried to use the "ALTER DATABASE" command, but it didn't work. And I wouldn't like to run "ALTER COLUMN" commands for over 100 tables.
There have been several threads about changing a database's collation but none have come up with an easy answer before. The suggestion before was to create an empty database with the correct collation and then copy the data across. However this is hard work as you have to populate tables in a specific order in order not to violate foreign keys etc. You can't just dts the whole data.
There follows scripts we have written to do the job. If people use them, please could you add to this thread whether they worked successfully or not.
Firstly we change the default collation, then change all the types in the database to match the new collation.
=================== --script to change database collation - James Agnini -- --Replace <DATABASE> with the database name --Replace <COLLATION> with the collation, eg SQL_Latin1_General_CP1_CI_AS -- --After running this script, run the script to rebuild all indexes
ALTER DATABASE <DATABASE> COLLATE <COLLATION>
exec sp_configure 'allow updates',1 go reconfigure with override go update syscolumns set collationid = (select top 1 collationid from systypes where systypes.xtype=syscolumns.xtype) where collationid <> (select top 1 collationid from systypes where systypes.xtype=syscolumns.xtype) go exec sp_configure 'allow updates',0 go reconfigure with override go ===================
As we have directly edited system tables, we need to run a script to rebuild all the indexes. Otherwise you will get strange results like comparing strings in different table not working. The indexes have to actually be dropped and recreated in separate statements. You can't use DBCC DBREINDEX or create index with the DROP_EXISTING option as they won't do anything(thanks to SQL Server "optimization"). This script loops through the tables and then loops through the indexes and unique constraints in separate sections. It gets the index information and drops and re-creates it. (The script could probably be tidied up with the duplicate code put into a stored procedure).
==================== --Script to rebuild all table indexes, Version 0.1, May 2004 - James Agnini -- --Database backups should be made before running any set of scripts that update databases. --All users should be out of the database before running this script
print 'Rebuilding indexes for all tables:' go
DECLARE @Table_Name varchar(128) declare @Index_Name varchar(128) declare @IndexId int declare @IndexKey int
DECLARE Table_Cursor CURSOR FOR select TABLE_NAME from INFORMATION_SCHEMA.tables where table_type != 'VIEW'
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table_Name
--loop through tables WHILE @@FETCH_STATUS = 0
BEGIN print '' print @Table_Name
DECLARE Index_Cursor CURSOR FOR select indid, name from sysindexes where id = OBJECT_ID(@Table_Name) and indid > 0 and indid < 255 and (status & 64)=0 and not exists(Select top 1 NULL from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where TABLE_NAME = @Table_Name AND (CONSTRAINT_TYPE = 'PRIMARY KEY' or CONSTRAINT_TYPE = 'UNIQUE') and CONSTRAINT_NAME = name) order by indid
OPEN Index_Cursor FETCH NEXT FROM Index_Cursor INTO @IndexId, @Index_Name
--loop through indexes WHILE @@FETCH_STATUS = 0 begin
declare @SQL_String varchar(256) set @SQL_String = 'drop index ' set @SQL_String = @SQL_String + @Table_Name + '.' + @Index_Name
set @SQL_String = @SQL_String + 'index ' set @SQL_String = @SQL_String + @Index_Name set @SQL_String = @SQL_String + ' on ' set @SQL_String = @SQL_String + @Table_Name
set @SQL_String = @SQL_String + '('
--form column list SET @IndexKey = 1
-- Loop through index columns, INDEX_COL can be from 1 to 16. WHILE @IndexKey <= 16 and INDEX_COL(@Table_Name, @IndexId, @IndexKey) IS NOT NULL BEGIN
IF @IndexKey != 1 set @SQL_String = @SQL_String + ','
set @SQL_String = @SQL_String + index_col(@Table_Name, @IndexId, @IndexKey)
SET @IndexKey = @IndexKey + 1 END
set @SQL_String = @SQL_String + ')'
print @SQL_String EXEC (@SQL_String)
FETCH NEXT FROM Index_Cursor INTO @IndexId, @Index_Name end
CLOSE Index_Cursor DEALLOCATE Index_Cursor
--loop through unique constraints DECLARE Contraint_Cursor CURSOR FOR select indid, name from sysindexes where id = OBJECT_ID(@Table_Name) and indid > 0 and indid < 255 and (status & 64)=0 and exists(Select top 1 NULL from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where TABLE_NAME = @Table_Name AND CONSTRAINT_TYPE = 'UNIQUE' and CONSTRAINT_NAME = name) order by indid
OPEN Contraint_Cursor FETCH NEXT FROM Contraint_Cursor INTO @IndexId, @Index_Name
--loop through indexes WHILE @@FETCH_STATUS = 0 begin
set @SQL_String = 'alter table ' set @SQL_String = @SQL_String + @Table_Name set @SQL_String = @SQL_String + ' drop constraint ' set @SQL_String = @SQL_String + @Index_Name
set @SQL_String = @SQL_String + '; alter table ' set @SQL_String = @SQL_String + @Table_Name set @SQL_String = @SQL_String + ' WITH NOCHECK add constraint ' set @SQL_String = @SQL_String + @Index_Name set @SQL_String = @SQL_String + ' unique '
I need a SQL Server 2005 SP2 instance with a collation of SQL_Latin1_General_CP850_BIN2. After installing SP2, the collation is SQL_Latin1_General_CP850_BIN, and none of the patches I can find seem to want to work (they are all apparently written for SQL Server 2000).
I can't find any articles telling me how to restore master,msdb databases on a sql 2000 cluster. Both in a active/active setup and active/passive set up. I am experimenting to see if normal restore in a stand alone environment would work. But I would like to know if there is a definitive method to use. Looked on BOL could not find anything.
We are implementing PCI (Payment Card Industry) and one thing that is required is that we change our encryption keys once a year or when a key custodian leaves. The only way that I have seen to do that is to decrypt all the encrypted data, drop and recreate the symmetric key, the certificate, and database master key, and then re-encrypt the data.
Is there any way to just change the password on the database master key? I understand that if the actual symmetric keys have been breached, that would not be enough, but for routine maintenance, just changing the password on the database master key would seem to be enough.
I have looked and looked, but have not found anyone else that is doing this type of thing. Maybe I am just not looking in the right places. Can anyone offer some guidance? Thank!!!
I am performing a Rebiuld of the Master database using the REBUILDM utility on a SQL 2000 SP3 database which is clustered. The utility starts off correclty, copying the correct MDF and LDF files to the hard drive, and the configuration bar goes across the screen 4 times, before giving the following error "Rebuild master failed with error -1".
I can't find anything on microsoft. I followed KB-298568 to perform this process, but the SQL Service will now not start as it cannot find the master, as it did not get rebuilt properly.
I have included screen shots of the error, in the zipped up word doc.
I've been in support for over ten years, but have had minimal exposure to SQL. I have a client who is running SQL 2005 (as part of SBS Premium), who experienced a server crash due to the database "administrator" filling up the C: drive with manual SQL backups.
Anyway, if I go into SQL Management Studio and try to pull up properties of any database I get a "cannot show requested dialog" error. The only other issue that I've found is that a maintenance plan doesn't quite work correctly -- It will backup their database, but not delete old copies off the hard drive. Otherwise, SQL seems to be running okay.
I have come to the conclusion that I probably need to rebuild the master database. I have tried restoring the master database from a version prior to the crash, but I still have the same issue. I believe the rebuild should be fairly easy, but just don't have a full understanding of what it will affect. They have one custom application that uses a single SQL database and very little security customization (the custom application uses one Windows AD account to access the database).
Basically, I'm wondering:
1. Can someone summarize what is contained in the master database 2. I assume that I'm looking at downtime on their custom application/database - Would this be correct? 3. Will this affect their database at all? 4. How long does the database rebuild process take? 5. I understand that in SQL 2005, the rebuild process it part of the setup on the CD. If the problem is with SQL application files themselves, will this process restore any corrupt program files?
I'm using SQL SERVER 2000 and in the process of establishing recoveryguide.Tried to rebuild master using rebuildm.exe but the "Configuring Server"never ending. Then I tried to copy original databases from SQLServerInstallation CD to hard disk as the "Browse for folder", but gave thesame problem. Need advice what need to be done.
We have (had) an active/active cluster. 2 physical machines, each running their own instance, clustered together. Node1/Ins1 and Node2/Ins2.
Node2 failed and Ins2 failed over to Node1 as it should. Node2 required that we rebuild the server (rebuild = reinstall O/S). Now we need to get Node2 back into the cluster and get Ins2 failed back over to Node2.
Does anyone know, for certain, the correct steps to accomplish this? Obviously, we could backup everything and completely destroy Ins2 and recreate it on Node2 then rejoin the cluster. But I'm looking for something less destructive.
Is it possible to reinstall SQL, then rejoin the cluster, and then fail Node2 over? Or will there be registry conflictions?
Any help would be appreciated. Also, if you have any links to some official documentation, that would be great too.
Looks like I'm screwed. Next problem - can you rebuild the master.mdf without the mastlog.ldf and how? Also, on an active/active SQL server setup, how would you re-install Node 1?
I tried to test Rebuildm.exe on my local server 1. Stoped Sql 2. Renamed master.mdf to master.mdf_old 3. Tried to start Sql (Does start of couse) 4. Run Rebuildm.exe ... and "Gonfigurating Sql server" message goes forever (I was waiting 1 1/2 hrs ... progress bar was running )
We ran into weird/interesting issue with below details.
Version:Â Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)Â Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200):
We are using SQLCMD to run DDL script on our product database in below order. That script has below content.
step # 1 - database collation change (case -sensitive) statement as very first statement of the script step # 2 - Actual DDL SQL statements step # 3 - database collation change back to original (case insensitive)
When we execute all above 3 steps in single script using SQLCMD on our test_server#1 , it is successful but when same is being implemented on test_ server#2 , it is failing.We ensured that there is no other user accessing the db and setting on both the server are all default/basic. Separating out all 3 steps in 3 different script working fine. This is only problem when we combine them into single script and fire it using SQLCMD. If it is something related to session/transaction then we should hit same issue on our test_server#1 server as well but that is not the case.test_server#1 and test_server#2 has exact same database/data, just two different physical machine & SQL Server instance.
Scenario Recently moved a SQL2000 database to SQL2005. Collation on SQL 2000 database server was SQL_Latin1_General_CP1_CI_AS Colaltion on SQL 2005 database server is Latin1_General_CI_AS
After restoring the SQL 2000 database on SQL 2005 we observed that the database collation was SQL_Latin1_General_CP1_CI_AS. We have altered the database collation to Latin1_General_CI_AS. We understand this will work for all new objects created on the database but existing objects (prior to the collation change) will continue to have the 'SQL_Latin1_General_CP1_CI_AS' collation.
What is the best method to change the collation of the older columns to 'Latin1_General_CI_AS' - 1) Run ALTER TABLE ALTER COLUMN <colname> <datatype> COLLATE Latin1_General_CI_AS <nullability> on each varchar/char column
or
2) For each table BCP out data DROP TABLE RECREATE TABLE (taking the new collation Latin1_General_CI_AS) BCP in data
We are planning to change all IPs of PRODUCTION Failover Cluster Setup. In my cluster setup ... we have 2 Physical Nodes with windows-2008, Roles are MSDTC and SQL-2008R2.
IP change for:
1. Both Nodes(Physical) 2. MSDTC 3. SQL Server 4. windows ClusterÂ
So Almost... All IPs are going to change.
Im DBA here, I need to take care of SQL cluster and MSDTC. But I haven't performed this activity before.So I'm worrying about Impacts and consequences of this change. steps how should I perform this activity.
I've restored a SQL Server 2000 database with a Latin1_General_BIN collation from a .dmp file to a SQL Server 2005 server with a default collation of SQL_Latin1_General_CP1_CI_AS. When I try to change the database collation I get hundreds of the following error:
The object 'CK_PM10200_GLPOSTD_00AF8CF' is dependent on database collation. So, in this case, is it even possible to change the collation if there are objects in the database that are dependent on it?
We have many tables which have cluster index on column with datatype 'Char(200)'. Does anyone have script to change cluster index to noncluster for all user tables which have clustered index on a column with 'char(200)' datatype.
I€™ve had a SQL 2000 server restored (using Veritas 9.1) to another server also running SQL 2000. I now have a collation problem.
When trying to add users to a database, I receive a "Error 446: Cannot resolve collation conflict for equal to operation" message.
I noted that tempdb and user tables collation don€™t match - so I was going to change the user tables. However, the master collation doesnt match tempdb, model or msdb.
Server is set to SQL_Latin1_General_CP1_CI_AS Master - SQL_Latin1_General_CP1_CI_AS tempdb, model, msdb - Latin1_General_CI_AS
I was under the impression that when tempdb was recreated it inherited the master database's collation? This doesn€™t seem to be happening.
Hi , I am working on logshipping DRS trail and have done role successfully. Now after doing the role change I want to rebuild the logshipping for database which is already existing in secondary server. I tried adding destination server with existing database. It gives me message as " The database is not in standbymode to do logshipping". Can anyone help me on this. How should I bring the existing database in warm standby mode.
I have been testing methods to maintain indexes in a SQL Server 2005 database which has been migrated from SQL Server 2000. The compatibility level is still set to 80. I used the query below to inspect the degree of fragmentation amongst other things.
SELECT a.index_id
, name
, database_id
, avg_fragmentation_in_percent
,index_type_desc
,fragment_count
,page_count
FROM sys.dm_db_index_physical_stats (NULL, NULL, NULL, NULL, 'DETAILED') AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
Some of the indexes in the database had a high degree of fragmentation based on the avg_fragmentation_in_percent value. I tried drop+create, rebuild and reorganise commands on those indexes. Predictably, drop + create was the most effective, but even that did not always reduce fragmentation much. Sometimes the fragmentation was the same no matter what method I used. Other times drop+create helped, rebuild made it worse.