Scripts

Technical Article

Concatenate Rows without a cursor

You might come accross a situation where you want to retrieve the values of all the rows concatenated and stored in one variable. Here is the solution. Lets say you have a table called tblCustomerOrders which has CustID and OrderID. You now want all the OrderIDs for a particular Customer to be stored in one […]

(1)

You rated this post out of 5. Change rating

2002-07-02

1,101 reads

Technical Article

GetFileInfo2

An Improved version of GetFileInfo that now includes the space utilization of each datafile.  Provides more detail per file.  Predict when your files are going to grow!! Both data and log files. This script organizes information about the database files on the server.   A cursor is used to get the information from each database.  The […]

You rated this post out of 5. Change rating

2002-06-28

574 reads

Technical Article

Function to return a delimited list as a table

This SQL2000 function accepts a delimited list of values as a string and the character you want to use as a delimiter.The function then splits these out and returns them as a table.The function assumes that the input string will contain unique integer values.Useage: -  SELECT Id FROM fnSplit('1,2,3,4' , ',')

You rated this post out of 5. Change rating

2002-06-27

590 reads

Technical Article

Get File Info

This script organizes information about the database files on the server.   A cursor is used to get the information from each database.  The information is reported in Megabytes, including the next allocation from disk.  No bells and whistles...and if I can find how dbcc showfilestats works I will add the amount of space used in […]

You rated this post out of 5. Change rating

2002-06-24

1,129 reads

Technical Article

Enumerate SQL Servers using SQLDMO and T-SQL

Microsoft reported BUG :ListAvailableServers Method of the SQLDMO.Application Object Causes Error 0x800A000E .When you execute the ListAvailableServers method of the SQLDMO.Application object from an ASP page, the following error message may occur: Microsoft SQL-DMO (0x800A000E) [SQL-DMO]Not enough storage is available to complete this operation. However, there is some solution to get SQL servers using Client […]

You rated this post out of 5. Change rating

2002-06-19

504 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