sp_MS_marksystemobject把这些存储过程标记为系统存储过程。
--sp_的迷糊
if exists(select 1 from master..sysdatabases where name='TestSpPrefix')
DROP DATABASE TestSpPrefix
GO
CREATE DATABASE TestSpPrefix
GO
USE TestSpPrefix
go
IF OBJECT_ID(N'dbo.Orders',N'U') IS NOT NULL
DROP TABLE dbo.Orders
GO
CREATE TABLE Orders(OrderId INT)
GO
INSERT INTO Orders SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
GO
USE master;
GO
IF OBJECT_ID('dbo.sp_Proc1') IS NOT NULL
DROP PROC dbo.sp_Proc1;
GO
CREATE PROC dbo.sp_Proc1
AS
PRINT 'master.dbo.sp_Proc1 executing in ' + DB_NAME();
SELECT OrderID FROM dbo.Orders;
go
EXEC sp_MS_marksystemobject 'dbo.sp_Proc1';
USE TestSpPrefix
EXEC dbo.sp_proc1
GO
USE Northwind
EXEC dbo.sp_proc1
--GO
--USE Pubs
--EXEC dbo.sp_proc1
if exists(select 1 from master..sysdatabases where name='TestSpPrefix')
DROP DATABASE TestSpPrefix
GO
CREATE DATABASE TestSpPrefix
GO
USE TestSpPrefix
go
IF OBJECT_ID(N'dbo.Orders',N'U') IS NOT NULL
DROP TABLE dbo.Orders
GO
CREATE TABLE Orders(OrderId INT)
GO
INSERT INTO Orders SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
GO
USE master;
GO
IF OBJECT_ID('dbo.sp_Proc1') IS NOT NULL
DROP PROC dbo.sp_Proc1;
GO
CREATE PROC dbo.sp_Proc1
AS
PRINT 'master.dbo.sp_Proc1 executing in ' + DB_NAME();
SELECT OrderID FROM dbo.Orders;
go
EXEC sp_MS_marksystemobject 'dbo.sp_Proc1';
USE TestSpPrefix
EXEC dbo.sp_proc1
GO
USE Northwind
EXEC dbo.sp_proc1
--GO
--USE Pubs
--EXEC dbo.sp_proc1

浙公网安备 33010602011771号