[INFORMATION_SCHEMA].[TABLES]
ビューにアクセスするUDFを作成しました。
CREATE FUNCTION [dbo].[CountTables]
(
@name sysname
)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
);
END
Visual Studio内では、ビューのスキーマと名前の両方に警告のマークが付いています。
SQL71502:関数:[dbo]。[CountTables]には、オブジェクト[INFORMATION_SCHEMA]。[TABLES]への未解決の参照があります。
問題なくデータベースプロジェクトを公開できますが、UDFは正しく実行されているようです。 IntelliSenseがビューの名前を自動的に入力するため、問題はないようです。
また、このビューの代わりにsys.objects
を使用するように実装を変更しようとしましたが、このビューにも同じ警告が表示されました。
この警告を解決するにはどうすればよいですか?
データベース参照をmaster
に追加します。
VSの更新には時間がかかる場合があることに注意してください。
このプロジェクトでは、マスターへの参照が既にありますが、この問題がありました。以下がエラーです。
SQL71502: Procedure: [Schema].[StoredProc1] has an unresolved reference to object [Schema].[Table1].[Property1].
参照エラーを解決するには、テーブルsqlファイルでプロパティを右クリックし、BuildSettingsがBuildに設定されていることを確認します。
ビルドを変更すると修正されました。
サムが言ったことはこれを行うための最良の方法です。
ただし、その特定の場所にその参照がないマシンからdacpacを展開する必要があるシナリオがある場合、問題が発生する可能性があります。別の方法は、.projectファイルを開き、実行しようとしているビルド構成の次のタグの値がfalse
であることを確認することです。
<TreatTSqlWarningsAsErrors>false</TreatTSqlWarningsAsErrors>
このように、プロジェクトに参照を追加する必要はありません。