MS Sql
Transcript of MS Sql
![Page 1: MS Sql](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/3.jpg)
--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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/7.jpg)
*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](https://reader036.fdocuments.in/reader036/viewer/2022083119/577ccec51a28ab9e788e41f2/html5/thumbnails/8.jpg)
--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