WillyDEV HOLIntrotosqlservermanagementstudio
WillyDEV HOLIntrotosqlservermanagementstudio
Lab Manual
SQL Server™ 2005:
Introduction to SQL Server Management
Studio
Information in this document is subject to change without notice. The example companies, organizations,
products, people, and events depicted herein are fictitious. No association with any real company,
organization, product, person or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this
document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by
any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the
express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarked, copyrights, or other intellectual property rights
covering subject matter in this document. Except as expressly provided in any written license agreement
from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks,
copyrights, or other intellectual property.
Microsoft, MS-DOS, MS, Windows, Windows NT, MSDN, Active Directory, BizTalk, SQL Server, SharePoint,
Outlook, PowerPoint, FrontPage, Visual Basic, Visual C++, Visual J++, Visual InterDev, Visual SourceSafe,
Visual C#, Visual J#, and Visual Studio are either registered trademarks or trademarks of Microsoft
Corporation in the U.S.A. and/or other countries.
Other product and company names herein may be the trademarks of their respective owners.
Using the SQL Server Management
Studio in SQL Server 2005
Note This lab focuses on the concepts in this module and as a result may not
comply with Microsoft security recommendations.
Note The SQL Server 2005 labs are based on beta builds of the product. The
intent of these labs is to provide you with a general feel of some of the planned
features for the next release of SQL Server. As with all software development
projects, the final version may differ from beta builds in both features and user
interface. For the latest details on SQL Server 2005, please visit
http://www.microsoft.com/sql/2005/.
Estimated time to
complete this lab: 45
minutes
2 http://www.WillyDEV.NET
Exercise 0
Lab Setup
Log in using the Administrator user account. The password is
pass@word1.
Exercise 1:
Exploring the Environment
In this exercise, you will become familiar with the new SQL Server 2005
administration tool, currently called SQL Server Management Studio.
SQL Server Management Studio is a new tool built for SQL Server 2005. It
combines the functionality of the Enterprise Manager snap-in and the Query
Analyzer. Although this is the main tool for administering one or more SQL
Servers, you can also use the SQL Server Management Studio for executing
queries and scripts, and for managing SQL Server projects.
The SQL Server Management Studio tool is based on the Microsoft
Development Environment used in Visual Studio 2005 to create applications. If
you are not already familiar with Visual Studio 2005, using the SQL Server
Management Studio tool will help you learn to use the new Microsoft
Development Environment for Visual Studio 2005.
7. Click Connect.
Note the various areas of the SQL Server Management Studio:
The lower left pane is the Object Explorer, which looks like the tree view on the
left side of SQL Server 2000 Enterprise Manager. Above that is the Registered
Servers pane, containing a list of servers to which Management Studio can
connect.
The right side of the SQL Server Management Studio contains the tools for
managing projects. On the top right is the Solution Explorer. Below that is the
Properties Window. If the Solution Explorer is not visible, you can choose to
display it by selecting View | Solution Explorer. If the Properties window is
not visible, you can also enable that window from the View menu, or by right-
clicking on any object in the Solution Explorer window and choosing
Properties Window. At the moment, the Solution Explorer is blank because no
solution is currently loaded.
The location of all of these windows and browsers can be changed, and you can
remove the ones you don’t want or need. You can undock and move windows
by double-clicking on the window’s title bar. There are options available for
changing the layout and resetting the default layout from the Tools | Options
menu.
If you close any of the windows, you can restore them from the View menu.
EXEC sp_who
4. Press F5 or click the Execute button on the toolbar to execute the query.
Note that you can disconnect from SQL Server without closing the query
window by using the Query | Connection | Disconnect menu option.
Alternatively, you can add a Disconnect or Disconnect All button to the
toolbar. Right-click on the toolbar and choose Customize. Go to the
Commands tab and select Query in the leftmost list box. You can then drag
any command from the rightmost list onto an existing toolbar. Click Close to
dismiss this dialog box.
one for each of the five exercises in this lab. Under Exercise 1, expand the
Queries folder, and double-click the script called ServerProperties.sql.
USE master
SELECT SERVERPROPERTY('ServerName')
SELECT SERVERPROPERTY('Edition')
SELECT SERVERPROPERTY('ProductVersion')
SELECT SERVERPROPERTY('ProductLevel')
2. To execute the batch, press F5 or click the Execute button on the toolbar. If
prompted, reconfirm your server name and authentication mode in the
Connect to SQL Server dialog box.
Note the edition and version number of the SQL Server you are connected to.
You may have to scroll down to see all of the results.
www.WillyDEV.NET 5
Exercise 2:
Attaching a Database
In this exercise, you will attach the AdventureWorks database using the “Attach
Database” option in the SQL Server Management Studio Object Explorer.
Attaching a database means making all the database files available to your SQL
Server, just as if you had created the database on the current server. Detaching a
database allows you to move the physical files and reattach those files from a
new physical location, or to make a copy of the files to use on another server
(perhaps a test or development server).
Because the primary file contains the locations of all the other files in a
database, if all the files are in their original location (as stored in the primary
file) you only need to specify the primary file when attaching the database. SQL
Server will read the information in the primary file and attach all the associated
files for the database.
However, if the files are not all in the original location, the information stored
in the primary file may not be sufficient for SQL Server to find and attach all
the database files. You will then need to specify the exact physical location of
each database file that is not in the location it was when the database was
detached.
When a database is detached, SQL Server will do a checkpoint in the database,
so all the committed transactions are written to the disk files.
USE AdventureWorks
SELECT DATABASEPROPERTYEX('AdventureWorks', 'Status')
SELECT DATABASEPROPERTYEX('AdventureWorks', 'Recovery')
SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation')
SELECT DATABASEPROPERTYEX('AdventureWorks', 'Updateability')
SELECT DATABASEPROPERTYEX('AdventureWorks', 'UserAccess')
SELECT DATABASEPROPERTYEX('AdventureWorks',
'IsAutoCreateStatistics')
SELECT DATABASEPROPERTYEX('AdventureWorks', 'IsAutoShrink')
6. Press F5 or click the Execute button on the toolbar to execute the batch. If
requested, respond to the Connect to SQL Server dialog box.
7. Examine the values returned for the various database properties.
www.WillyDEV.NET 7
Exercise 3:
Exploring an Existing Database
In this exercise, you will use the options available in the SQL Server
Management Studio to discover table and procedure definitions. You will also
use the Management Studio’s query tool to execute basic SQL commands to
examine table data.
USE AdventureWorks
GO
2. Select the query you just entered, and then press F5 or click the Execute
button on the toolbar to execute the query.
Note Even though the GO is not necessary for SQL Server to execute the
queries, or for you to select and run individual batches, using GO is the only
way that the query tool knows how to separate the batches.
www.WillyDEV.NET 9
Exercise 4:
Creating a new database
In this exercise, you will create a new database using a SQL Server
Management Studio template. You will then investigate the default properties
of a new database.
-- =============================================
-- Create database template
-- =============================================
IF EXISTS (
SELECT *
FROM master..sysdatabases
WHERE name = N'<database_name, sysname,
sample_database>')
DROP DATABASE <database_name, sysname, sample_database>
GO
3. Select the Edit | Find and Replace | Quick Replace menu command.
4. In the Find what textbox, enter <database_name, sysname,
sample_database> (including the angle brackets).
5. In the Replace with textbox, enter NewDB.
6. Click Replace All. A dialog box should show 3 occurrence(s) replaced.
Click OK, and then close the dialog box.
7. Press F5 or click the Execute button on the toolbar, and click Connect if
necessary.
Exercise 5:
Setting up Database Access
In this exercise, you will add two new logins to SQL Server, and add those
logins to a role in your new database.
SQL Server 2005 simplifies the administration of SQL Server security by
separating the implicit link between users and the database objects that they
own. Earlier versions of SQL Server required that you first drop or reassign all
database objects that the users owned, which significantly complicated the
process. SQL Server 2005 includes a new object permission model that
addresses this issue.
By breaking the link between users and database objects, administration is
simplified as follows:
Users can be dropped without having to drop or reassign database objects.
Users are associated with a default schema that is the owner of objects that
the user creates.
Schemas can be owned by roles, allowing multiple users to administer
database objects without requiring database-wide permissions.
USE master
GO
EXEC sp_addlogin NewUser1, pa$$word, NewDB
EXEC sp_addlogin NewUser2, pa$$word, NewDB
GO
EXEC sp_helplogins
GO
2. Press F5, or click the Execute button on the toolbar, to execute the query. If
prompted, respond to the Connect to SQL Server dialog box.
You should now have two new logins, each with a password of ‘pa$$word’ and
a default database of NewDB.
USE NewDB
GO
CREATE USER NewUser1
WITH DEFAULT_SCHEMA = DemoSchema
GO
CREATE USER NewUser2
GO
2. Select the code you just entered, and press F5 or click the Execute button on
the toolbar to execute the selected statements.
In SQL Server 2005, you use CREATE USER to map a login to a database user
instead of sp_grantdbaccess. Optionally, you can specify a login name using
this syntax:
If no login name is specified, then the user is associated with the login of the
same name as that of the <user_name>. If no such login exists the CREATE
USER fails. (However, if the name specified were interpreted to be a Windows
login in the form DOMAIN\loginname, the CREATE USER would not fail.)
The <login_name> can be a Windows login, a Windows group or a SQL Login.
Note that you can give a user a default schema, even though the schema has not
been created yet. The default schema is the schema name that will automatically
be assumed when a query is run, if a schema is not explicitly specified. The
default schema applies to all DML and DDL statements: SELECT, INSERT,
UPDATE and DELETE, as well as CREATE TABLE and ALTER TABLE.
USE NewDB
GO
CREATE ROLE DemoUsers
GO
CREATE SCHEMA DemoUsers AUTHORIZATION DemoUsers
GO
EXEC sp_addrolemember DemoUsers, NewUser1
EXEC sp_addrolemember DemoUsers, NewUser2
EXEC sp_addrolemember db_datareader, DemoUsers
GO
2. Select the code you just entered, and press F5, or click the Execute Button
on the toolbar, to execute the selected statements.
12 http://www.WillyDEV.NET
Note that you can make a role a member of another role. In this case, you made
the user-defined role DemoUsers a member of the predefined database role
db_datareader.
USE NewDB
GO
CREATE SCHEMA DemoSchema AUTHORIZATION DemoUsers
GO
SELECT * FROM sys.schemas
GO
2. Select the code you just entered, and press F5 or click the Execute button on
the toolbar to execute the selected statements. In your results, you should
see all of the predefined database roles, as well as any user-defined roles
created with sp_addrole, which automatically creates a corresponding
schema. You’ll see guest and INFORMATION_SCHEMA, which were
users in SQL Server 2000. You should see your newly defined schemas
DemoUsers and DemoSchema and a system schema called sys. There is
also a schema dbo, as well as a user dbo that you can see if you run
sp_helpuser.
In SQL Server 2005, all system tables are in a hidden resource database but are
visible through the sys schema, which is a logical schema available in every
database
3. In this step, you’ll create two tables and insert a row of identifying data into
each one. The tables will have the same name, but one will be in the
DemoSchema schema and the other will be in the dbo (built-in) schema.
This code is in the SQL script NewTable.sql under Exercise 5 in the
Solution Explorer. Load this code:
USE NewDB
GO
CREATE TABLE DemoSchema.DemoTable
(version varchar(20) )
INSERT INTO DemoSchema.DemoTable SELECT 'DemoSchema schema'
GO
4. Select the code you just entered, and press F5 or click the Execute button on
the toolbar to execute the selected statements.
1. In this step, you’ll grant permission to the DemoUsers role to create new
tables. This code is in the SQL script Permission.sql under Exercise 5 in
the Solution Explorer. Load this code:
USE NewDB
GO
GRANT CREATE TABLE to DemoUsers
GO
2. Select the code you just entered, and press F5 or click the Execute button on
the toolbar to execute the selected statements.
3. Press F5 or click the Execute button on the toolbar to execute the script.
When you are prompted to supply your connection information, choose
SQL Server Authentication. Enter NewUser1 for the user name, and
pa$$word for the password. Click Connect.
Because the user NewUser1 was given the default schema of DemoSchema,
SQL Server will automatically look first for an object called DemoTable in
DemoSchema when resolving the SELECT statement.
SQL Server will also use DemoSchema as the owner of the new table
DemoTable1, as you can see when you execute sp_help DemoTable1.
You can change the connection information for any open query using the File |
Change Connection menu item.
4. Disconnect again: select the Query | Connection | Disconnect menu item.
5. To see what happens when a default schema was not specified when the
user was created, open the following script. It can be found in the SQL
script UserDemo2.sql under Exercise 5 in the Solution Explorer.
14 http://www.WillyDEV.NET
USE NewDB
SELECT * FROM DemoTable
GO
CREATE TABLE DemoTable2
(message varchar(30))
INSERT INTO DemoTable2 SELECT 'Created by NewUser2'
GO
6. Press F5 or click the Execute button on the toolbar to execute the script.
When you are prompted to supply your connection information, choose
SQL Server Authentication. Enter NewUser2 for the user name, and
“pa$$word” for the password. Click Connect.
You did not specify a default schema when you created the NewUser2 user, so
dbo is used as the default schema. Because NewUser2 is a member of the
DemoUsers role, which in turn is a member of the db_datareader role,
NewUser2 can read from the DemoTable in the dbo schema. However,
NewUser2 does not have permission to create a table in the dbo schema, so an
error message is generated.
SQL Server will always first check the default schema defined for a user when
accessing an object, and then it will check for an object in the dbo schema.
In previous versions of SQL Server, users and schemas were treated as
synonymous. For backward compatibility, if you use the system stored
procedure sp_grantdbaccess, SQL Server 2005 will create both a user and a
schema of the same name, and the schema will be a user’s default schema. This
means that sp_ grantdbaccess NewUser is equivalent to the following code.
In SQL Server 2005, users and schemas are two different things.
A user is an identifier for the person using a database. A user can belong to
roles, and can be granted permissions, either directly or through roles they
belong to.
A schema is a namespace which contains a set of objects and is owned by a user
or a role.
A user is never added to a schema; schemas contain objects, not users. Users
can be assigned a default schema that may or may not exist. A user’s default
schema is used for name resolution.
In order to create an object in a schema, the following conditions must be
satisfied:
The schema must exist.
The user creating the object must have CREATE TABLE permission, either
directly or through role membership.
The user creating the object must be the owner of the schema, must be a
member of the role that owns the schema, must have ALTER rights on the
schema, or must have the ALTER ANY SCHEMA permission in the
database.