gpt4 book ai didi

sql - 共享存储过程

转载 作者:行者123 更新时间:2023-12-04 17:07:51 25 4
gpt4 key购买 nike

假设我有许多具有完全相同架构的 sql server 数据库。有什么地方可以写一个存储过程,申请所有的数据库吗?如果我为每个数据库创建存储过程,则需要时我必须更新它们。

最佳答案

您可以在master 中创建一个在当前数据库上下文中运行的存储过程如果您在存储过程前加上sp。这是一个例子:

USE master
GO
CREATE DATABASE Test1 --for demo purposes
GO
CREATE PROCEDURE dbo.sp_DoStuff
AS
SET NOCOUNT ON
SELECT DB_NAME()
GO

USE Test1
GO
EXEC dbo.sp_DoStuff
GO

USE msdb
GO
EXEC dbo.sp_DoStuff
GO

USE master
GO
DROP DATABASE Test1
DROP PROCEDURE dbo.sp_DoStuff
GO

这当然就是为什么您通常不创建以 sp 开头的用户存储过程...引擎会尝试解析 master 中的名称

您可以依靠延迟名称解析来避免对 master 中不存在的表抛出错误

关于sql - 共享存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3218141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com