システムのバグをこの異常まで追跡しました。少なくとも、スキーマが類似しているが等しくない15個のカタログのシステムの異常です。
[INFORMATION_SCHEMA]。[VIEWS]の[TABLE_NAME]が[VIEW_DEFINITION]の値と異なる原因は何ですか?
SQLServerのビューやシステムテーブルについて何も理解していないように思われます。
システムのバグをこの異常まで追跡しました。少なくとも、スキーマが類似しているが等しくない15個のカタログのシステムの異常です。
[INFORMATION_SCHEMA]。[VIEWS]の[TABLE_NAME]が[VIEW_DEFINITION]の値と異なる原因は何ですか?
SQLServerのビューやシステムテーブルについて何も理解していないように思われます。
ビューの名前を変更した場合、名前は変更されますが、定義は変更されません。
これは、右クリックしたり、を使用したりするのではなく、 DROP
/CREATE
またはスクリプトとして実行する必要があります。ALTER
sp_rename
これは、実際にはすべてのモジュールで予想される動作です。簡単なストアドプロシージャを使用した簡単なテストは次のとおりです。
CREATE PROCEDURE dbo.proc_foo
AS
SELECT 1;
GO
-- rename it to proc_bar
EXEC sys.sp_rename N'dbo.proc_foo', N'proc_bar', N'OBJECT';
GO
-- check the definition from various sources
SELECT od = OBJECT_DEFINITION(OBJECT_ID(N'dbo.proc_bar')),
info_s = (SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_NAME = N'proc_bar' AND SCHEMA_NAME = N'dbo'),
sql_m = (SELECT definition FROM sys.sql_modules
WHERE [object_id] = OBJECT_ID(N'dbo.proc_bar'));
結果:
od info_s sql_m
----------------------------- ----------------------------- -----------------------------
CREATE PROCEDURE dbo.proc_foo CREATE PROCEDURE dbo.proc_foo CREATE PROCEDURE dbo.proc_foo
AS AS AS
SELECT 1; SELECT 1; SELECT 1;
いずれにせよ、とにかく使用するべきではありませINFORMATION_SCHEMA
ん...