MS Sql

9
DB RELATED create database db3 on primary (name='db3',filename='E:\SQL_DBs\db3.mdf', size=10mb,filegrowth=5mb,maxsize=100mb) log on (name='db3_log',filename='E:\SQL_DBs\db3.ldf', size=5mb,filegrowth=10%,maxsize=50mb) alter database db3 add log file (name='db3_log', filename='E:\SQL_DBs\db3_log.ldf', size=10mb,filegrowth=5mb,maxsize=100mb) --add secondary DB FILE TO db3 database alter database db3 add file (name='db3_sec', filename='E:\SQL_DBs\db3_sec.ndf', size=10mb,filegrowth=5mb,maxsize=100mb) --to add log file to db3 database alter database db3 add log file (name='db3_log_1', filename='E:\SQL_DBs\db3_log_1.ldf', size=10mb,filegrowth=5mb,maxsize=100mb) --to get information about database db3 sp_helpdb db3 select * from sys.databases where name='db3' --to get file related information use db3 sp_helpfile select * from sys.sysfiles --to add secondary file group db3 database with filename fg alter database db3 add filegroup fg --to see the file groups sp_helpfilegroup select * from sys.sysfilegroups sp_help tb2 create table tb1(id int) create table tb2 (id int) on fg 1

Transcript of MS Sql

Page 1: MS Sql

DB RELATED

create database db3 onprimary(name='db3',filename='E:\SQL_DBs\db3.mdf',size=10mb,filegrowth=5mb,maxsize=100mb)

log on (name='db3_log',filename='E:\SQL_DBs\db3.ldf',size=5mb,filegrowth=10%,maxsize=50mb)

alter database db3add log file (name='db3_log', filename='E:\SQL_DBs\db3_log.ldf',size=10mb,filegrowth=5mb,maxsize=100mb)

--add secondary DB FILE TO db3 databasealter database db3add file (name='db3_sec', filename='E:\SQL_DBs\db3_sec.ndf',size=10mb,filegrowth=5mb,maxsize=100mb)

--to add log file to db3 databasealter database db3add log file (name='db3_log_1', filename='E:\SQL_DBs\db3_log_1.ldf',size=10mb,filegrowth=5mb,maxsize=100mb)

--to get information about database db3sp_helpdb db3

select * from sys.databases where name='db3'

--to get file related informationuse db3sp_helpfileselect * from sys.sysfiles

--to add secondary file group db3 database with filename fgalter database db3add filegroup fg

--to see the file groupssp_helpfilegroupselect * from sys.sysfilegroups

sp_help tb2

create table tb1(id int)

create table tb2 (id int) on fg

insert into tb2 values( 1 )select * from tb2

alter database db3add file(name='db3_sec_1',filename='E:\SQL_DBs\db3_sec_1.ndf',size=10mb) to filegroup fg

--to check if any active connections with db3select * from sys.sysprocesses where dbid=DB_ID('db3')

1

Page 2: MS Sql

use master

--make a db offilnealter database db3 set offlinealter database db3 set online

--alter database db3 modify file(name='db3_log_1',filename='E:\SQL logs\db3_log_1.ldf')

BACKUP

/*system tables related to backup and restore (msdb database)backupfile restorefilebackupfilegroup restorefilegroupbackpmediafamily restorehistorybackupmediaset

*/

create database vimdb

alter database vimdbadd filegroup fg1

alter database vimdbadd file ( name='vim_db_sec', filename='e:\backup\vimdb_sec.ndf') to filegroup fg1

--full backupbackup database vimdb to disk='E:\backup\vimdb_full.bak';

--differential backupbackup database vimdb to disk ='e:\backup\vimdb_diff.bak' with differential;

--T-log backupbackup log vimdb to disk ='e:\backup\vimdb_log.trn'

--file backupbackup database vimdb file='vim_db_sec' to disk='e:\backup\vimdb_file.bak'

--filegroup backupbackup database vimdb filegroup='fg1'to disk='e:\backup\vimdb_fg.bak'

use master--to make filegroup as readonlyalter database vimdb modify filegroup fg1 readonly

--partial backupbackup database vimdb read_write_filegroups to disk = 'e:\backup\vimdb_part.bak'

--copy backupbackup database vimdb to disk = 'e:\backup\vimdb_rw.bak'

GRANTING PERMISSIONS

use vimdb

dbcc checkdb vimdb

2

Page 3: MS Sql

--create user mary for login mary

--to get list of users of a databasesp_helpuserselect * from sys.database_principalsselect * from sys.sysusers

create table tb11(id int)

--to give permissionsgrant select on tb11 to marygrant insert,update,delete on tb11 to mary

--to see list of permissions on an objectsp_helprotect tb11

create table tb12 (id int)

--to list the database rolessp_helprole

--to make a user as a member of db_datareader rolesp_addrolemember db_datareader, mary

--to see memebers of a database rolesp_helprolemember db_owner

--to remove a user from db_datareader rolesp_droprolemember db_datareader, mary

RESTORING

--RESTORATIONuse vimdb

create table tb1(c1 int)

----------------------------------------------------------------------------------------------------------------------------case 1: only full backupbackup database vimdb to disk = 'e:\backup\vimdb_full.bak'

insert into tb1 values(1)

use master drop database vimdb

--restore database with backupsrestore database vimdb from disk ='e:\backup\vimdb_full.bak'------------------------------------------------------------------------------------------------------------------------------case2 : full + differential

use vimdb

create table tb2(c1 int)

backup database vimdb to disk = 'e:\backup\vimdb_full.bak'

3

Page 4: MS Sql

insert into tb2 values(1)

backup database vimdb to disk ='e:\backup\vimdb_diff.bak' with differential

insert into tb2 values(2)select * from tb2

use masterdrop database vimdb

restore database vimdb from disk='e:\backup\vimdb_full.bak' with norecoveryrestore database vimdb from disk='e:\backup\vimdb_diff.bak.' with norecovery

restore database vimdb with recovery------------------------------------------------------------------------------------------------------------------------------case 3: full + differential + T-log

create table tb3(c1 int)

backup database vimdb to disk = 'e:\backup\vimdb_full.bak'

insert into tb3 values(1)

backup database vimdb to disk ='e:\backup\vimdb_diff.bak' with differential

insert into tb3 values(2)

backup log vimdb to disk='e:\backup\vimdb_log_1.trn'

insert into tb3 values(3)

backup log vimdb to disk='e:\backup\vimdb_log_2.trn'

insert into tb3 values(4)select * from tb3use vimdbdrop database vimdb

restore database vimdb from disk='e:\backup\vimdb_full.bak' with norecoveryrestore database vimdb from disk='e:\backup\vimdb_diff.bak.' with norecovery

restore log vimdb from disk='e:\backup\vimdb_log_2.trn' with norecoveryrestore database vimdb with recovery----------------------------------------------------------------------------------------------------------------------------

--case 4: point in time recovery

create table tb4 (c1 int)backup database vimdb to disk = 'e:\backup\vimdb_full.bak'

insert into tb4 values(1)select GETDATE()insert into tb4 values(2)

backup log vimdb to disk='e:\backup\vimdb_log.trn'

select * from tb4use masterdrop database vimdb

4

Page 5: MS Sql

restore database vimdb from disk='e:\backup\vimdb_full.bak' with norecovery

--2014 march 22 15:14:19.560restore database vimdb from disk='e:\backup\vimdb_log.trn' with norecovery, stopat='2014 march 22 15:14:19.560'restore database vimdb with recovery

use vimdbselect * from tb4

ROLES

--create login <windows user name>

create login mary with password='vim@123'

--to get the login detailssp_helplogins

--full login detailsselect * from sys.sysloginssp_helplogins mary

--to list the serveer rolessp_helpsrvrole

--to add a login to server rolesp_addsrvrolemember 'mary','sysadmin'

--to see memebers of server rolesp_helpsrvrolemember sysadmin

--to remove a member from server rolesp_dropsrvrolemember 'mary', sysadmin

--to grant server level permissionsgrant view server state to mary

use vimdb

SCHEMA

use vimdb--to create a schemacreate schema hrcreate schema sales

--to see the schemasselect * from sys.schemas

--to see object and its respective schemasselect name,SCHEMA_NAME(schema_id) from sys.objects where name like 'tb?'

--lets create the table under schemascreate table hr.table1(c1 char(20))create table sales.table1(c1 char(20))

insert into hr.table1 values('from hr schema')5

Page 6: MS Sql

insert into sales.table1 values('from sales schema')

--get data from table1 of hr schemaselect * from hr.table1select * from sales.table1 --to grant permissions at schema levelgrant select on schema::hr to mary

--to change the default schema of useralter user mary with default_schema=hrsp_helpuser mary

--impersonate as maryexecute as user='mary'

select * from table1

revert

TRANSFERRING

use vimdb

create table emp(emp_id int,name char(20),place char(20))

-/*there are multiple ways to create from/to sql server1.import export2.BCP3.bulk insert4.select into insert into5.open row set and open data source*/

--1.IMPORT EXPORT/*data sources can be sql, oracle , any rdbms, flat file, excel, ms access, any odbc supporteddatabases*/

select * from emptruncate table emp

/*2.BCPBCP is a command line utility for transferring data to and from sql serverBCP can be done in 2 formats/ways

1.Native -n if we BCP out the data in character format it will be in user non-readable format

2.Character [-c] if we BCP out the data in character format it will be in user readable format

*if we are transferring data between sql servers, then go for native format which is fastest

way of data transfer

6

Page 7: MS Sql

*if we are transferring data between sql server and non-sql server destinations then use

character format*/

bulk insert emp from 'C:\Users\Raghu\Desktop\Mindtree\MS SQL Quiries\emp.txt'with (fieldterminator=',' , rowterminator='\n')

--**SELECT INTO**----if table doesnt exists, a new table is created. if table exists we cannot createselect * into master.dbo.emp from vimdb.dbo.empselect * from master.dbo.emp

--**INSERT INTO**----if already table exists use this methodinsert into vimdb.dbo.emp select * from master.dbo.emp

USER DEFINED ROLE

use vimdb

--create a rolecreate role dataentry

--get list of rolessp_helprole

sp_addrolemember dataentry, mary

--to verify the members of a particular rolesp_helprolemember dataentry

--to grand premission to a particular rolegrant select on tb1 to dataentry

--IMPERSONATION--EXECUTE as USER='mary'

--to verify the user nameselect SUSER_NAME()

select * from tb1

--to get back to the admin user rolerevert

--to grant the permission WITH GRANT optiongrant insert on tb1 to mary with grant optionsp_helprotect tb1

--DIFFERENCES BETWEEN DENY AND REVOKEcreate table tb5(id int)

--lets create 2 rolescreate role role1create role role2

--lets grant permissions to rolesgrant select on tb5 to role1, role2

7

Page 8: MS Sql

--lets add mary to role1,role2sp_addrolemember role1, marysp_addrolemember role2, mary

EXECUTE as USER='mary'select * from tb5revert

--lets take back the permission from role1--**USING DENY**deny select on tb5 to role1EXECUTE as USER='mary'select * from tb5revertsp_helprotect tb1----lets remove the denyrevoke select on tb5 from role1

8