[解決済み] ビューが存在する場合は削除する
2022-03-06 10:03:36
質問
私は最初にビューをドロップして、それを作成するスクリプトを持っています。 私はテーブルを削除する方法を知っています。
IF EXISTS (SELECT * FROM sys.tables WHERE name = 'table1' AND type = 'U') DROP TABLE table1;
ということで、viewsも同じようにしました。
IF EXISTS (SELECT * FROM sys.views WHERE name = 'view1' AND type = 'U') DROP VIEW view1;
create view1 as(......)
と表示され、エラーが発生しました。
CREATE VIEW」はクエリバッチの最初のステートメントでなければなりません。
どのように解決するのですか?
あなたのexistsの構文は間違っています、あなたは以下のようにDDLをgoで区切る必要があります。
if exists(select 1 from sys.views where name='tst' and type='v')
drop view tst;
go
create view tst
as
select * from test
また、以下のようにobject_idで存在確認ができます。
if object_id('tst','v') is not null
drop view tst;
go
create view tst
as
select * from test
SQL 2016では、以下の構文でドロップすることができます。
Drop view if exists dbo.tst
SQL2016 CU1 からは、以下のようになります。
create or alter view vwTest
as
select 1 as col;
go
関連
-
[解決済み】Teradata - 計算中に数値のオーバーフローが発生しました。
-
[解決済み] varchar 値の変換で int カラムがオーバーフローしました。
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] テーブルが存在する場合、それを削除するにはどうすればよいですか?
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] NOT IN vs NOT EXISTS
-
[解決済み] T-SQLでテーブル変数をSELECT INTOする
-
[解決済み] SQL Server テーブルからランダムな n 行を選択する
-
[解決済み】ストアドプロシージャを作成する前に存在するかどうかを確認する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み】SQLクエリ「00904. 00000 - "%s: 無効な識別子"
-
[解決済み】SQL Server サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、これは許可されません。
-
[解決済み] テスト
-
[解決済み] データ型 varchar の変換エラー
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] CLOBとNCLOBの違いは何ですか?