Scripts

Technical Article

OccursAny

Returns the number of times any word in comma delimeted character expression occurs within another character expression.cSearchExpression -- Specifies a comma delimeted character expression that OccursAny( ) searches for within cExpressionSearched. cExpressionSearched -- Specifies the character expression OccursAny( ) searches for cSearchExpression.OccursAny( ) returns 0 (zero) if cSearchExpression isn't found within cExpressionSearched.Example:OccursAny('the,dog','The quick brown fox […]

You rated this post out of 5. Change rating

2003-12-03

75 reads

Technical Article

Set logging properties for group of DTS packages

This script will set the Logging properties for a group of DTS packages. To run this script stand-alone, you'll need to set 6 variables. sSvr, sDb, sUid, sPwd, iSec and sPkgMatch. If you use this script in a DTS package, you can assign the values from Global Variables. The sPkgMatch variable is used as a […]

You rated this post out of 5. Change rating

2003-12-01

436 reads

Technical Article

SQL Server Job Status Report

This script generates an HTML report on the status of all jobs on a specific SQL Server instance. The report consists of several sections: a summary report of jobs that have passed, failed, been cancelled, or whose status is unknown; a detailed report of the status of each job.The script is designed to be included […]

You rated this post out of 5. Change rating

2003-12-01

926 reads

Technical Article

Monitor space used for disks, DBs, tables and filegroups

I pieced this script together from solutions I found on this and from Brian Knight's excellent book. It creates 3 tables: - tblDriveLogs. Collects free drivespace info for each drive for each time the script is run. - tblIndexLogs. Collects info on spaceused for each index and table. Please note that when only af single […]

(1)

You rated this post out of 5. Change rating

2003-11-26

905 reads

Blogs

Five Ways Redshift Serverless Quietly Eats Your Budget

By

It is Friday, the queries are running, and nobody is watching the bill. That...

A Career of Memories

By

Annabel retired from Redgate Software this week. Across most of my career at Redgate,...

Rethinking Index Maintenance: Why avg_fragmentation_in_percent Is Outdated and What You Should Do Instead

By

As a SQL Server DBA with years of experience tuning production environments, I’ve seen...

Read the latest Blogs

Forums

What is the Cloud?

By Steve Jones - SSC Editor

Comments posted to this topic are about the item What is the Cloud?

Changing the Schema

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Changing the Schema

Index Fragmentation Explained: Page Splits, Logical Reads, and What to Do

By Sanket Parmar

Comments posted to this topic are about the item Index Fragmentation Explained: Page Splits,...

Visit the forum

Question of the Day

Changing the Schema

I set up a few users on my SQL Server 2022 instance.

CREATE LOGIN User1 WITH PASSWORD = 'Demo12#1'
CREATE USER User1 FOR LOGIN User1
GO
CREATE LOGIN User2 WITH PASSWORD = 'Demo12#2'
CREATE USER User2 FOR LOGIN User2
GO
CREATE LOGIN User3 WITH PASSWORD = 'Demo12#3'
CREATE USER User3 FOR LOGIN User3
GO
I then created a schema that one of them owned. Under this schema, I added a table with some data.
CREATE SCHEMA MySchema AUTHORIZATION User1
GO
CREATE TABLE Myschema.MyTable(myid INT)
GO
INSERT MySchema.MyTable
(
    myid
)
VALUES
(1), (2), (3)
GO
SELECT * FROM MySchema.MyTable
GO
I granted rights and verified that User2 could access this table.
GRANT SELECT ON Myschema.MyTable TO User2
GO
SETUSER 'USER2'
GO
SELECT * FROM MySchema.MyTable
GO
This worked. Now, I move this schema to a new user.
ALTER AUTHORIZATION ON SCHEMA::Myschema TO User3;
GO
What happens with this code?
SETUSER 'USER2'
GO
SELECT * FROM MySchema.MyTable
GO

See possible answers