質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

2回答

20628閲覧

存在するテーブルなのに、Invalid object name 'テーブル名'.がでるエラーの解決法

_-.shoes

総合スコア5

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2020/04/22 03:37

azure data studio を使用し、
データベースの学習をしています。

下記のクエリでテーブルを新規作成し、
テーブルができたことは確認できてるのですが、
新規のクエリでこのテーブルにinsertしようとすると、
赤下線がでて、Invalid object name 'TEST'.となってしまいます。

-- Create a new table called '[TableName]' in schema '[dbo]'
-- Drop the table if it already exists
IF OBJECT_ID('[dbo].[TEST]', 'U') IS NOT NULL
DROP TABLE [dbo].[TEST]
GO
-- Create the table in the specified schema
CREATE TABLE [dbo].[TEST]
(
[test1] INT NOT NULL PRIMARY KEY, -- Primary Key column
[test1] DECIMAL(22,4) NOT NULL,
[test1] DECIMAL(22,4) NOT NULL,

);
GO

DROPしようとする際は、
IF OBJECT_ID('[dbo].[TableName]', 'U') IS NOT NULL
DROP TABLE [dbo].[TESTSUM]
GO
このように書くと大丈夫ですが、
DROP TABLE [dbo].[TESTSUM]
GO
このように書くと、Cannot drop the table 'dbo.TESTSUM', because it does not exist or you do not have permission.が表示されます。

解決法をご存知の方がいたらご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/04/22 06:14

教授 → 教示
guest

回答2

0

IF OBJECT_ID('[dbo].[TableName]', 'U') IS NOT NULL
DROP TABLE [dbo].[TESTSUM]
GO

上記ではTableNameが存在したらTESTSUMをDropするということなので、TableNameが存在していないから、
DROP TABLE [dbo].[TESTSUM]
が実行されない。
⇒何もしないからエラーにもならない

DROP TABLE [dbo].[TESTSUM]

存在チェックなしで実行した場合にエラーがでたのは、エラーメッセージ通り
TESTSUMが存在していない
TESTSUMに対してDROPする権限がない
のどちらかだと思います。

もう一度コードをみなおした方が良いかと。

投稿2020/04/22 05:05

storm3

総合スコア330

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もしもSSMSでエラーが出るようでしたら
CTRL+SHIFT+R
で改善しないでしょうか。

投稿2020/12/09 01:31

mariko.kanda

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問