.NET 数据库部署解决方案,我们使用 DACPACS 创建和升级数据库(使用
DacPackage
、DacDeployOptions
、DacServices
类)。
默认架构在 SQL 项目属性中设置为
dbo
,因此所有数据库对象现在都在 dbo
架构中创建。
要求:我需要一个实现来创建/升级仅具有不同架构的存储过程和函数。忽略数据库中的其余对象(表、视图、触发器等)。
请建议:在这种情况下,除了
dbo
之外,如何创建/升级具有不同架构的对象?
在您的 sqlproj 创建模式中,将新模式添加到项目中,使用以下命令创建文件 SchemaB.sql
CREATE SCHEMA [SchemaB]
然后在对象名称前面加上架构
CREATE TABLE [SchemaB].[Address]
(
[Id] INT NOT NULL PRIMARY KEY,
[Street] NVARCHAR(50) NOT NULL,
)
在部署选项中,您可以设置只想部署特定类型的对象,这些选项与您的项目一起存储在发布文件中,部署时将其用作 SqlPackage.exe 命令的输入。
如果您使用 Visual Studio(使用 VS 2022):
它应该创建一个名为“[yourSchemaName].sql”的文件,其中包含:
创建架构 [您的架构名称]