Scripts

Technical Article

Identify Primary Key Violation Prior to Insert (Updated)

This script allows for testing if rows will cause a primary key violations prior to inserting the data.  Offending rows are stored in a table so they can be used in subsequent queries or used to debug bad data issues. This updated version adds a timestamp to the duplicates table so that identifying when the […]

(2)

You rated this post out of 5. Change rating

2003-10-28

1,837 reads

Technical Article

SQL Server Error Log Manager

Provides a method to regularly recycle the sql server error logs based on a given file size.  If the current log file is larger than that size, then the current log is closed and a new log created.This proc takes one parameter, @MaxFileSize, which is the target file size.  This parameter defaults to 10 MB. […]

You rated this post out of 5. Change rating

2003-10-27

925 reads

Technical Article

User tables documentation - HTML format

It creates documentation for all user tables in a specific database. A server name/ database name was added on the top of the HTML file also a column datatype field was added to the HTML file. Now the @strHTML can have 8000 chars, before only 4000 - still for tables with a lot of columns […]

You rated this post out of 5. Change rating

2003-10-27

662 reads

Technical Article

compare table counts in two databases

Sound like old hat ... but this procedure accepts the two database names as input parameters; therefore, it must dynamically generate the SQL and use Exec(@command) to execute it.   It also reports on tables that exist in one database but not the other ...  Finally, it uses count(*) to provide more accuracy than using sysindex […]

You rated this post out of 5. Change rating

2003-10-24

309 reads

Technical Article

sp_toptables

Are you managing big databases with a lot of tables like SAP as I'm?Do you use sp_spaceused, as I'm?Do you want to know your n biggest tables as I'm?Then don't search any longer.I'm using this script every day for may maintenance jobs.I generates, like sp_spaceused, out of sysindexes the n biggest tables without any cursor, […]

You rated this post out of 5. Change rating

2003-10-20

307 reads

Technical Article

XML Encode UDF

I routinely need to retrieve and package query result sets in an XML package.  The built in functions supported by SQL Server 2000 are effective, but are often more of a pain than a help.  This routine can be used in a simple select statement to XML encode the contents of a column during the […]

You rated this post out of 5. Change rating

2003-10-14

247 reads

Blogs

How AgentDBA Diagnoses SQL Server Issues Fast

By

Not every production incident is a database in RECOVERY_PENDING or a corrupted event (like...

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,...

Read the latest Blogs

Forums

Extreme DAX: Take your Power BI and Fabric analytics skills to the next level

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Extreme DAX: Take your Power...

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

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