前提・実現したいこと
WITH句はサブクエリを共通テーブルとして定義することができる
と聞いて、早速やってみたのですが
1度目のselect利用は走るものの、2度目以降のselectではエラーになってしまいます。
原因分かる方おられたら教えてください。
発生している問題・エラーメッセージ
(1 行処理されました) メッセージ 208、レベル 16、状態 1、行 24 オブジェクト名 'w_pklist' が無効です。
該当のソースコード
WITH w_pklist As ( SELECT tbls.name AS table_name ,key_const.name AS constraint_name ,idx_cols.key_ordinal AS key_ordinal ,cols.name AS col_name FROM sys.tables AS tbls INNER JOIN sys.key_constraints AS key_const ON tbls.object_id = key_const.parent_object_id AND key_const.type = 'PK' INNER JOIN sys.index_columns AS idx_cols ON key_const.parent_object_id = idx_cols.object_id AND key_const.unique_index_id = idx_cols.index_id INNER JOIN sys.columns AS cols ON idx_cols.object_id = cols.object_id AND idx_cols.column_id = cols.column_id ) select * from w_pklist select * from w_pklist --オブジェクト名 'w_pklist' が無効です。
補足情報(FW/ツールのバージョンなど)
SQL Server 2016 Express
回答3件
あなたの回答
tips
プレビュー