• ベストアンサー
  • 暇なときにでも

Compact Edition でテーブルの存在チェック

Visual Studio 2005 (VB) から、 SQL Server 2005 Compact Edition に対し、 テーブルの存在チェックを行いたいのですが、 SQL文の書き方がわかりません。 Compact Edition 以外のSQL Server でしたら、 以下のような SQL でチェックできる事は知っております。 IF object_id('Northwind..Orders', 'U') IS NOT NULL PRINT N'存在します' ELSE PRINT N'存在しません' 例外にて判断する方法は、最後の手段と考えております。 ご存じの方、どうぞ宜しくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1156
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • nas02
  • ベストアンサー率70% (22/31)

こんにちは、nas02です。 Visual Studio 2005 のサーバエクスプローラからSQL Server 2005 Compact Edition のDBを接続すると 以下の3つが表示されます。 ・テーブル ・システムビュー ・レプリケーション この中の「システムビュー」に「INFORMATION_SCHEMA.TABLES」があります。 このビューに該当テーブルがあるかチェックすれば良いと思います。 (TABLE_TYPE と TABLE_NAME を抽出条件にすれば良いかと)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

nas02 さま 連絡が遅くなり、どうもすみません。 教えて頂いた方法により、判断する事ができました。 調査するテーブル名を tblEmployee とした場合、 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE ( TABLE_NAME = 'tblEmployee' ) AND ( TABLE_TYPE = 'TABLE' ) という SQL 文で判断できそうです。 本当に、どうもありがとうございました。

関連するQ&A

  • SQL Server2005 Compact Editionへの動作確認

    ハンディ端末にSQL Server2005 Compact Editionを入れて単純に動くかどうかを確認したいと考えています。 PC上ではSQL Server2005 Compact EditionをSSMSEより接続し、テープルをCREATE、SELECTする事が出来ました。 ハンディ端末ではSSMSEを使用することが出来ないのでクエリアナライザで使用する事を考えたのですがクエリアナライザをインストールするのにVisual Studio2005が必要であることが判明しました。(Visual Studioは持っていません) 未だ、ハンディ端末にSQL Server2005 Compact Editionをインストールしたわけでは有りませんが、インストールし、PC上で作成した.sdfをコピー後、テーブルを参照できるかどうか、確認する方法は無いでしょうか? 宜しくお願いします。

  • SQL Server 2005 Compact Editionのプログラミング(初心者)

    現在PDA(スマートフォン)によるアプリケーション開発に携わっています。PDAを用いて不特定多数に対し街頭調査をし、膨大ととなった情報をうまくまとめられたらと思い、Visual Studio 2005でソフトウェアを構築しています。しかし、プログラミングは初心者なので進行は遅いです。データを格納するデータベースとしてSQL Server 2005 Compact Editionの存在を知り、今はその勉強中です。しかし、なかなか良い参考書が見つかりません。MSDNのホームページを探していますが、うまく見つけられませんでした。 SQL Server 2005 Compact Editionを利用したPDAのプログラミングについて何か知っている方がいらっしゃいましたら、教えていただけると幸いです。

  • Compact 3.5とVS2012

    SQL Server Compact 3.5 SP2について教えてください。 現在、SQL Server 2008R2で運用されているWebアプリケーションシステムがあります。 ASP.NETで作られており、データアクセスはLINQ for SQLで動作しています。 今回、ちょっとしたサーバ移転があり、データアクセスの頻度がさほど高くない理由から、SQL Server Compact 3.5での稼働を計画しています。 (Compact 4.0だとLINQが動作しないらしいので) で、開発環境(VS2012)にてSQL CE3.5のファイルを作ろうとしたところ、サーバエクスプローラのプロバイダ選択画面で、CE3.5も4も出てきません。 (通常のSQL Serverや、mdf形式のSQL Serverプロバイダは正しく出てきます) そこで質問なのですが、 ・SQL Server CE3.5はVisual Studio 2012に対応しているのでしょうか? ・皆さんのVisual Studio 2012では、SQL Server CEをデータプロバイダとして、サーバエクスプローラを動作させることができますか? よろしくお願いします。

  • VB.NET SQL SERVER COMPACT EDITION

    VB.NETにてWindowsMobile5.0の開発をしております。 SQL SERVER COMPACT EDITIONを使ってデータベースの開発に取り掛かっておりますが経験が全くなく非常に手こずってます。 ユーザーが自由に名前や値を変更できる仕様なので挿入するデータを可変的に設定したい場合どうすれば良いのですか。 下記のZ1,A1,0.001等を変数にして可変にしたいです。 ' データを挿入します。 sql = "INSERT INTO Zahyou " & _ "(RECNO,TNAME,X,Y,Z,R,I,A1,A2) VALUES " & _ "('Z1','A1','1.000','2.000','3.000','4.000','5.000','6.000','7.000')" 年末までに仕上げなければならず非常に困ってます。 どうかお助けて下さい。

  • WindowsXP で SQL Server Compact Edition

    Visual Studio 2005 の Windowsアプリケーションプロジェクトにて SQL Server 2005 Compact Edition のデータベースにアクセスする方法 を調査しておりますが、実現できるかも含めてわかっておりません。 デバイスアプリケーションプロジェクトの場合は、 参照の追加でSystem.Data.SqlServerCeを追加すれば アクセスできる事はわかっております。 やりたいこと 1.WindowsXP上で***.SDFファイルを新規作成 2.作成した***.SDFに新規テーブルを作成 3.CSVファイルのデータを***.SDFへ登録 参考になるサイト・ヘルプ等ご存じの方がいらっしゃいましたら、 教えて頂けないでしょうか?宜しくお願いします。

  • VBExpressからSQLサーバーへの接続

    VBExpress2010をDLしSQLServercompactをいじろうと思ったのですが、接続がそもそも出来ず詰まってしまいました。 適当にフォームを作ってボタンを配置し、 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim St As String Dim Cn As New System.Data.SqlClient.SqlConnection Dim SQL As System.Data.SqlClient.SqlCommand Dim ServerName As String = "C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\Northwind.sdf"     Dim DatabaseName As String = "Northwind" 'データベース St = "Server=""C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\Northwind.sdf"";" St &= "integrated security=SSPI;" St &= "initial catalog = Northwind" Cn.ConnectionString = St SQL = Cn.CreateCommand SQL.CommandText = "SELECT FirstName FROM Employees" Cn.Open() MsgBox(SQL.ExecuteScalar) Cn.Close() SQL.Dispose() Cn.Dispose() End Sub としました。結構単純な流れだと思うのですがCn.Open()の部分で「sqlexpressionはハンドルされませんでした」とエラーが出ます。 SQL Network Interfaces, error: 26 だそうです。資格情報の有無もなにもデータベースエクスプローラで内部の閲覧は出来るし、パスワードフリーなのでどのセッションが不可なのか見当がつきません。アドバイスよろしくお願い致します。

  • WindowsCEのSQL Compact開発で困っています。

    はじめまして。 現在、WindowsCEでMS-SQL Compactにて開発を行っております。 以前開発したときには問題なかったのですが、 この度、不可解な現象が出て困っております。 1度目のSQLで SELECT COUNT(*) AS F_COUNT FROM T_MST WHERE F_CODE='4' を実行して、F_COUNTを取得しています。 その後、存在を確認して再度 SELECT * FROM T_MST WHERE F_CODE='4' として実行するのですが、 ネイティブ例外が発生してしまいます。 エラーの詳細には、sqlceqp35.dllで発生しているようなのですが…。 現在、八方手詰まりで非常に困っています。 同様の現象にて問題を回避した方ご教授の程よろしくお願いいたします。 開発言語:VisualStudio2008Professional

  • テーブルが存在していたらDROPしてからCREATEするには?

    作成しようとするテーブルが既に存在している場合 一度DROP TABLEを行いたくて、以下のSQLを作成したのですが 削除が実行されません。 そもそものやり方自体が間違っているのでしょうか? 実行後のメッセージは テーブルが存在しなかった場合→コマンドは正常に完了しました。 テーブルが存在した場合→データベースにオブジェクト名 'SLIP_ITEMXX' が既に存在します。 と、表示されます。 --テーブルが存在した場合削除する ※ストアド使用 CREATE PROCEDURE SP_SLIP_ITEMXX AS DECLARE @TableName varchar DECLARE @Sql varchar set @TableName = 'SLIP_ITEMXX' SET @Sql = 'if exists (select * from dbo.sysobjects where id = object_id(N' + @TableName + ') ' + 'DROP TABLE ' + @TableName EXEC(@Sql) GO --テーブル生成 CREATE TABLE SLIP_ITEMXX( [slip_no] [int] NOT NULL ) GO --ストアド削除 DROP PROCEDURE SP_SLIP_ITEMXX GO

  • Microsoft MSDN2005 Express Editionのアンインストール

    Microsoft MSDN2005 Express Edition microsoft SQL server 2005 Microsoft SQL VSS writer というものがインストールされていました。使った覚えはないのに使用頻度も「高」となっています。 確実に本人以外PCを触っていないのですが、そのようなことがありえるのでしょうか?ウイルスではないかと不安です。 またアンインストールしたら影響はありますでしょうか? ちなみにSQLを、検索して初めてデータベースのようなものと知った程度の知識しかありません。 以前無料のVBをインストールしたことがあるのですが(アンインストール済)それが関係あるのでしょうか。 まったくの素人質問ですみませんがよろしくおねがいします。

  • Insert文 で 変数を使いたい

    いつもお世話になっております。 現在、VB2005でSQLのプログラムを書いているのですが。 下記のInsert分に関してなのですが・・・ sCom = New SqlClient.SqlCommand(_ & "insert into janDB"(区分,コマンド種別,No) " _ & "values('A01','send',100)", scn) としたらうまくいくのですが、 valuesの実データを変数にしたいのですが, そういった処理はできないでしょうか? 何分初心者の上、試行錯誤しているのですがうまくいきません。 アドバイス等を頂けたら幸いです。 SQL Server 2005 Express Edition Visual Studio 2005 Standard Edition Windows XP Pro SP2