* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download TRUNCATE TABLE
Oracle Database wikipedia , lookup
Commitment ordering wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Functional Database Model wikipedia , lookup
Serializability wikipedia , lookup
Ingres (database) wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Clusterpoint wikipedia , lookup
Concurrency control wikipedia , lookup
Relational model wikipedia , lookup
Today’s Topics Backup Recap Restoration and Recovery T-SQL Commands – – – – – – INSERT UPDATE DELETE BEGIN TRAN COMMIT TRAN ROLLBACK TRAN Backup Types Full backup Differential backup Transaction log backup File/filegroup backup Disaster Recovery in SQL SQL Server examines the Transaction log, going from the last checkpoint to the point at which the server was shut down or failed. Committed transactions that have not been written to the database are rolled forward and written to the database. Uncommitted transactions are rolled back and not written to the database. Recovery Types Automatic Recovery – occurs when you start SQL Server – ensures data in each db is consistent – checks the transaction log Manual Recovery – this is done by the administrator – involves restoring one of the backups Full Backup Differential Backup Log Backup Page 258 has more info on Recovery Verifying backup files In Enterprise Manager, Backup folder under Management Backup/Restore info in msdb system database Transact SQL commands – RESTORE LABELONLY (media info) – RESTORE HEADERONLY (backup set info) – RESTORE FILELISTONLY (file info) Table 9-2 on Page 291 Restoring a Database Restoring is the process of recovering the database to its original form Restoring can be done using Enterprise Manager Transact SQL commands – RESTORE DATABASE – RESTORE LOG EM - Restore using database Restore using filegroup/file Restore using device Restore options Recovery completion options RECOVERY - Instructs the restore operation to rollback any uncommitted transactions - you cannot apply any more transaction logs NORECOVERY - Instructs the restore operation to not roll back any uncommitted transactions - lets you apply more transaction logs STAND BY - Leave database readonly option - lets you apply additional transaction logs Restoring system databases Do the following Exercises Page 291 Page 298 Page 303 through 306 Any questions Take a break Restore using TSQL Two main commands RESTORE DATABASE RESTORE LOG Examples on Pages 306-307 RESTORE DATABASE RESTORE DATABASE syntax: RESTORE DATABASE database_name [file_or_filegroup] [FROM backup_device] [WITH [RESTRICTED_USER | DBO_ONLY] [[,] FILE = file_number] [[,] PASSWORD = password] [[,] MEDIANAME = medianame] [[,] MEDIAPASSWORD = password] [[,] MOVE 'logical_filename' TO 'os_filename'] [[,] KEEP_REPLICATION] [[,] NORECOVERY | RECOVERY | STANDBY = undofile] [[,] NOREWIND | REWIND] [[,] NOUNLOAD | UNLOAD] [[,] REPLACE] [[,] RESTART] [[,] STATS = percentage] ] RESTORE LOG RESTORE LOG syntax: RESTORE LOG database_name [FROM backup_device] [WITH [RESTRICTED_USER | DBO_ONLY] [[,] FILE = file_number] [[,] PASSWORD = password] [[,] MEDIANAME = medianame] [[,] MEDIAPASSWORD = password] [[,] KEEP_REPLICATION] [[,] MOVE 'logical_filename' TO 'os_filename'] [[,] NORECOVERY | RECOVERY | STANDBY = undofile] [[,] NOREWIND | REWIND] [[,] NOUNLOAD | UNLOAD] [[,] RESTART] [[,] STATS = percentage] [[,] STOPAT = date_time] | [,] STOPATMARK = 'markname'] [AFTER date_time] [,] STOPBEFOREMARK = 'markname'[AFTER date_time] ] Restoring system databases When the master db becomes corrupt or if the Server dies on you, you will have to – Rebuilding the master database - Page 310 – Rebuilding System databases - Page 312 Try exercise on Page 308 only Rebuilding system databases Data manipulation SELECT SQL statement - remember does not modify data Modify data by using the following SQL commands: – – – – INSERT, UPDATE, DELETE TRUNCATE TABLE INSERT statement Inserts one or more new rows into the specified table or query. When you use the VALUES clause, only a single row is inserted. If you use a sub-select statement, the number of rows inserted equals the number of rows returned by the select statement. INSERT SYNTAX INSERT one record INSERT [INTO] table_name [WITH table_hints ] | view_name | rowset function [(column_list)] VALUES (values_list) | select_statement | DEFAULT VALUES INSERT with Sub-Select - multiple records INSERT [INTO] new table_name SELECT fields FROM old table_name Inserting data Values can be generated for: – – – – IDENTITY columns Columns with the timestamp data type Columns with a default value Nullable columns When DEFAULT VALUES is specified: – Defaults will be inserted in columns with defined defaults – IDENTITY columns will receive the next identity value – Columns with a timestamp data type will receive the next appropriate values – All other columns will receive a NULL Inserting data Insert a new Record into the Region table in Northwind database using the following – INSERT INTO REGION (RegionID, RegionDescription) VALUES (5, ‘Midwest’) Create a table Table1 in Northwind first. The structure should be the same as Shippers table. Then execute this SQL – INSERT INTO TABLE1 SELECT * FROM SHIPPERS UPDATE statement This statement is used to update data in the tables Uses a WHERE clause to seek the rows that need to be updated Can use a sub-select to update data In the absence of WHERE clause, all the records are updated - Therefore Be careful with this! UPDATE SYNTAX UPDATE syntax: UPDATE table_name [WITH table_hint] | view_name | rowset_function SET column_name = expression | DEFAULT | NULL | @variable_name = expression | @variable_name = column = expression [FROM table_name] [WHERE search_conditions] [WHERE CURRNT OF [GLOBAL] cursor_name | cursor_variable] [OPTION query_options] UPDATE EXAMPLES Lets say that we need to update the Contact for ‘Eastern Connection’ in the Customers table from Ann Devon to Jim Smith We can do this using the following UPDATE CUSTOMERS SET CONTACTNAME='Jim Smith’ WHERE COMPANYNAME=‘EASTERN CONNECTION’ Now you can review the change by doing SELECT * FROM CUSTOMERS WHERE COMPANYNAME=‘EASTERN CONNECTION’ Deleting rows DELETE – Remove all rows from the table – Reclaim space from table rows and indexes – Leave the table structure and all indexes in place TRUNCATE TABLE: – Runs a non-logged – Resets the identity value DELETE statement Used to delete data from tables Like the Update statement uses the WHERE clause to located the records to delete. In case of No WHERE clause, deletes all the records in the table Be very careful with this one also! DELETE SYNTAX DELETE syntax: DELETE [FROM] table_name [WITH table_hint] | view_name | rowset_function [FROM table_source] WHERE search_conditions [WHERE CURRNT OF [GLOBAL] cursor_name | cursor_variable] [OPTION query_options] DELETE EXAMPLE Lets say we want to remove the row we added in Region table earlier. – SELECT * FROM REGION will show all the records – Get the Region Id which is 5 – DELETE FROM REGION WHERE REGIONID=5 TRUNCATE TABLE Removes all records from a table. TRUNCATE TABLE syntax: TRUNCATE TABLE [[database.]owner.]table_name TRUNCATE TABLE TABLE1 Transaction statements BEGIN TRANSACTION BEGIN TRAN[SACTION] [transaction_name | @tran_name_var] [WITH MARK ['description'] COMMIT TRANSACTION COMMIT [TRAN[SACTION]] [transaction_name | @tran_name_var]] ROLLBACK TRANSACTION ROLLBACK TRAN[SACTION] [transaction_name | @tran_name_var | savepoint_name | @savepoint_name_var] Using transactions Lets say we want to update the title for employees with title ‘Sales Representative’ to ‘Sales Associate’. We will do this twice – First time we will assume that we forgot the WHERE clause and then recover using ROLLBACK TRAN – Second time we will do it the right way and use COMMIT TRAN Using transactions - Part 1 Try the following begin tran update employees set title='Sales Associate’ Now check the data - Notice all the titles have been changed by mistake Try this rollback tran Now check it again select * from employees Using transactions - Part 2 Now try the following begin tran update employees set title='Sales Associate’ where title='Sales Representative' Now check the data again - Notice all the titles have been changed correctly Go ahead and apply the change by using commit tran