Проблемы с sp_HelpText, удаляющим схему dbo в ответе - PullRequest
0 голосов
/ 03 июля 2018

Когда я звоню на следующий

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 Server (MSSQL 2014) включить [dbo], добавленный в NameOfTrigger, например,

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

Нам нужно это для некоторого кода в Entity Framework для обработки переименований таблиц в пользовательских поколениях SQL миграции.

1 Ответ

0 голосов
/ 03 июля 2018

Я пробовал кое-что в своей среде разработки, чтобы посмотреть, смогу ли я воспроизвести вашу проблему. Похоже, ваш триггер был изначально создан без указания схемы dbo в операторе CREATE TRIGGER.

Эта инструкция CREATE TRIGGER приводит к отображению схемы dbo в результатах sp_helptext:

CREATE TRIGGER dbo.NameOfTrigger ON ...

Однако, это не так:

CREATE TRIGGER NameOfTrigger ON ...

(Второй оператор по умолчанию все еще использует схему в dbo.)

Пример:

sp_helptext example

Так что я бы сказал, попробуйте сбросить и заново создать ваш триггер, но на этот раз используйте схему dbo в операторе CREATE TRIGGER. Тогда вы сможете кормить EF.

Мел еще один, чтобы "всегда указывать схему" ...

...