sp_HelpText 剥离 dbo 模式作为响应的问题

Issues with sp_HelpText stripping out dbo schema in response

当我调用以下内容时

EXEC sp_HelpText 'dbo.NameOfTrigger'

我得到以下返回

CREATE TRIGGER NameOfTrigger ON [dbo].[NameOfTable] FOR INSERT, UPDATE, DELETE

然而,当我在另一个模式上调用相同类型的调用时

EXEC sp_HelpText 'AnotherSchema.NameOfTrigger'

我得到结果

CREATE TRIGGER [AnotherSchema].[NameOfTrigger] ON [AnotherSchema].[NameOfTable]

有没有办法强制 SQL 服务器 (MSSQL 2014) 将 [dbo] 添加到 NameOfTrigger,例如

CREATE TRIGGER [dbo].[NameOfTrigger] ON [dbo].[NameOfTable] FOR INSERT, UPDATE, DELETE

Entity Framework 中的一些代码需要这个来处理自定义迁移 SQL 代中的 table 重命名。

我在我的开发环境中尝试了一些东西,看看是否可以重现您的问题。看来您的触发器最初是在未在 CREATE TRIGGER 语句中指定 dbo 架构的情况下创建的。

此 CREATE TRIGGER 语句导致 dbo 架构显示在 sp_helptext 结果中:

CREATE TRIGGER dbo.NameOfTrigger ON ...

然而,这个没有:

CREATE TRIGGER NameOfTrigger ON ...

(第二个语句仍然默认架构为 dbo。)

示例:

所以我会说尝试删除并重新创建触发器,但这次在 CREATE TRIGGER 语句中使用 dbo 模式。然后你应该可以喂给EF了。

用粉笔写另一个 "always specify the schema"...