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"...
当我调用以下内容时
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"...