This problem happened to me after I killed the connections PID to one of my databases. The single user mode was removed, but I wasn’t able to use the database, since it was in the Recovery Pending mode. How to fix this problem?
My database was in Single User mode. I don’t know how it entered in this mode, but this causes a lot of problem with the database itself. For example, trying to expand the database, you get an error:
The database ‘my_db’ is not accessible.(ObjectExplorer)
Also, when trying to delete it, you get:
Changes to the state or options of database ‘my_db’ cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
How to fix this?
When you create a table in SQL Server and save it, sometimes, if you try to edit the table design you get this error:
Saving changes is not permitted. The change you have made requires the following table to be dropped and re-created. You have either made changes to a table that can’t be recreated or enabled the option prevent saving changes that require the table to be re-created.
This can happen also if the table is a new empty table, never used.
Continue reading “Sql Server “Saving changes is not permitted””
To see how much MB your SQL Server log is, just run this query:
Here how import/export single table using MySQL as DBMS:
Exporting the Table
To export the table run the following command from the command line:
mysqldump -p --user=username dbname tableName > tableName.sql
This will export the tableName to the file tableName.sql.
Importing the Table
To import the table run the following command from the command line:
mysql -u username -p -D dbname < tableName.sql
The path to the tableName.sql needs to be prepended with the absolute path to that file. At this point the table will be imported into the DB.
The classic commad working in SQL Server
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
isn’t working on Azure database.
Here the code to disable the foreign keys on all the table of a database:
DECLARE @enable_constraints bit = 0 --Don't change anything below this line. DECLARE @schema_name SYSNAME DECLARE @table_name SYSNAME DECLARE table_cursor CURSOR FOR SELECT schemas.name, tables.name FROM sys.tables INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id OPEN table_cursor FETCH NEXT FROM table_cursor INTO @schema_name, @table_name DECLARE @cmd varchar(200) WHILE @@FETCH_STATUS = 0 BEGIN SET @cmd = 'ALTER TABLE ' + QUOTENAME(@schema_name) + '.' + QUOTENAME(@table_name) + ' ' SET @cmd = @cmd + (CASE WHEN @enable_constraints = 1 THEN 'CHECK' ELSE 'NOCHECK' END) + ' CONSTRAINT ALL' PRINT @cmd EXEC( @cmd ) FETCH NEXT FROM table_cursor INTO @schema_name, @table_name END CLOSE table_cursor DEALLOCATE table_cursor
To enable them again, just change the firs row with
DECLARE @enable_constraints bit = 0
When you do some stuff on your database, it can be useful disable, for a while, the foreign keys check. Here how to do it:
Continue reading “Enable/disable foreign keys check”
Duplicate data often creeps in when multiple users add data to the database at the same time or if the database wasn’t designed to check for duplicates. Duplicate data can be either multiple tables containing the same data or two records containing just some fields (columns) with similar data. Here’s how you can locate duplicate records for a desktop database.
To find duplicate records:
- On the Create tab, click Query Wizard.
- In the New Query dialog, click Find Duplicates Query Wizard > OK.
- In the list of tables, select the table you want to use and click Next.
- Select the fields that you want to match and click Next.
- In the list of available fields, select the field or fields that contain the data that you want to update and click Next.
- Accept the suggested query name or enter a name, and click Finish to run the query.