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

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

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

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

SQL

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

Q&A

解決済

2回答

12515閲覧

SQLServerでバインド変数(:)がOracle同様使用できるか

shigure2

総合スコア16

SQL Server

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

SQL

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

0グッド

0クリップ

投稿2017/10/26 07:58

お世話になります。
OracleからSQLServerへの移行を検討中です。
SQL文の変更点を探しているのですが、バインド変数コロンはSQLServerでも同様に使用できますか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

SqlServerの変数は@ですので変更が必要になるかと。
変数とパラメーターの使用 (データベース エンジン)

投稿2017/10/26 08:16

sazi

総合スコア25195

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

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

shigure2

2017/10/26 08:21

具体的に言及されているものが見つからなかったのですが、やはりそうなのですね…。 コロンからアットマークに置換するだけではだめですよね…?
sazi

2017/10/26 13:01

コメントありがとうございます。 VB.NET前提でかつOracle.DataAccess.Client ⇒System.Data.OleDb についての説明ですね。 ストアドなんかだとやっぱり@使うことになるんだろうけど、SQL自体を見直しになるはずなので、それに比べたら些末なことかなあと思います。
shigure2

2017/10/27 04:59 編集

コメントありがとうございます。 今回たまたま開発言語がVB.NETでしたので資料とても参考になりそうです。 しかし、SQL自体は見直しが必要ということでしょうか…。 資料を読んだところ、バインド変数にあたるのはアットマークではなくクエスチョンマークのようですが、クエスチョンマークの認識に変えて良いのでしょうか? 度々すみません
sazi

2017/10/27 07:00 編集

System.Data.OleDbを使用するなら、?になります。 SQLに関してはDBMSごとの方言や関数なども異なりますから見直しは必須だと思います。
shigure2

2017/10/30 01:02

System.Data.OleDbを使用するかの判断が私にはできずです…。 使用する場合は?、使用しなければ@ですね。 バインド変数の使用数が多く、見直しには時間がかかりそうです。 ありがとうございます。
sazi

2017/10/30 06:48 編集

>使用しなければ@ですね。 では無いです。使用するライブラリによります。 @については.netとは関係なく、あくまでストアドなどの話です。 SQLSERVERには専用の「.NET Framework Data Provider for SQL Server」などがあります。 System.Data.OleDbは汎用なので、専用のものより性能面等で劣ります。 今後のDB変更見越して、汎用を使用するというのも選択肢ではありますが、可能なら専用をお勧めします。
shigure2

2017/11/01 09:01

違いましたか…知識が浅くすみません。 System.Data.OleDbではない専用のものがなんだか分からないのですが、汎用的なものの方が劣ってしまうということも知れて良かったです。 まだライブラリ等何も決まっていませんが、調べてやってみます。
guest

0

直接の回答ではありませんが、SQL Server 2016 移行支援特別プログラム の移行ツールの中でバインド変数の問題も解決してくれるかもしれないので、移行の条件が合うなら問合せてみては?

投稿2017/10/26 13:03

Orlofsky

総合スコア16415

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

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

shigure2

2017/10/27 00:40

コメントありがとうございます。 そちらのサイトの移行参考資料を参考に調査しています。 おっしゃってくださったのは、「SQLServer201への移行ステップを進めるために必要な情報とサポートはこちら」内のお話でしょうか。 私ではまだ判断がつかないので、上司に確認します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問