SQL Server
- SqlServer2012 ビューとクエリ
SqlServerにおける、ビューとクエリについて、その違いというか、概念を教えてください。 私は、最初にAccessと「標準SQL」という本で、データベースを学びました。 本を読んでAccessに向かったときに、クエリってビューのことなのかな?と思って、ずっとやってきました。 ところが、SqlServerには、両方の言葉が出てきます。で、とりあえず、クエリをデザイナで作ってみて、クエリにクエリを内包するようなものを作る段になって、クエリが追加できなことに気づきました。Accessでクエリのタブがあるところに、ビューというタブがあるので、クエリの代わりに、ビューを作りました。まったく同じ手順で作れましたが、保存するときに、「OrderBy句は、ビュー定義のTOP句によって返される行を決定するためだけに使用されます。したがってクエリ自体でもOrderByが指定されていないと、ビューでクエリを実行したときに結果が並べ替えられ宇保証はありません。」 などと、表示されます。 ビューでクエリを実行するとは、どういう事なのでしょうか?クエリを実行するのと、ビューを実行(?)するのは、何か違うのでしょうか?
- ベストアンサー
- SQL Server
- KAZUMI2003
- 回答数3
- DB、キャストとインサートを同時に行うには?
SQLserverにデータを入れる際、現在存在しているテーブルとは型があっていない列があります。 このとき、キャストをしながらインサートを同時に行いたいのですが、どのようなクエリを書けばいいかわかりません。教えてください。
- ベストアンサー
- SQL Server
- kuu1207
- 回答数1
- SQL Serverの認証方法について
SQL Serverについて学習中です。 認証方法の違いについてご教示ください。 SQL Serverには「Windows認証」と「SQL Server認証」の二つの認証方法があるところまでは理解したのですが、ネット検索や手元の資料をみても具体的なものが見えてきません。 (1)「Windows認証」でSQL Serverに接続するには: クライアントPCのWindowsアカウント名/パスワードが、SQL ServerがインストールされているPCに登録されているWindowsのユーザー名/パスワードと一致している必要がある。(一致していても、SQL Serverの設定で接続を拒否されていると接続できない) (2)「SQL Server認証」でSQL Serverに接続するには: SQL Serverの「ログイン」(←Windowsのアカウントではない)に登録されているユーザー名/パスワードと一致すれば、クライアントPCのWindowsアカウントのユーザー名/パスワードが何であっても、データベースに接続できる。 認証方法の違いについては、上記このような理解でよいのでしょうか?? しかし実際には「SQL Server認証」を選択すると、SQL Serverのユーザー名/パスワードだけでなく、Windowsアカウント名/パスワードも一致していないと接続できないように思えます。 つまり 「Windows認証」は「Windows認証だけ」で 「SQL Server認証」は「Windows認証 + SQL Server認証」(両方一致しないといけない) なのではないかという気がしています。 VBやVC#等でローカルアプリを作って複数で使用したいのですが、クライアントPCのアカウント名まで管理するのは厄介です。XPパソコンをAdministratorで使用している人がたくさんいて、Windows認証をクリアできないからです。 クライアントPCのアカウント名やパスワードに関係なく、SQL Serverに登録されたユーザー名/パスワードだけで接続するには、どうしたらよいのでしょうか? よくわかっていないので、よくわからない質問になってしまっていると思いますが、よろしくお願いします。 質問の意味がわからないところは補足しますので、ご指摘ください。
- 締切済み
- SQL Server
- pouta
- 回答数2
- SQL Server のテーブルについて
SQL Server 2008R2のテーブル(データベース)をWindows 2000に置いて、WinXPやWin7でアクセスしたいのですができますか? ご教授願います。
- 締切済み
- SQL Server
- 1z2y
- 回答数2
- アップサイズできない
access2007・Microsoft SQL Server 2012です。 アクセスからアップサイズしようとすると、 「アップサイジング ウィザードは Accessプロジェクトの接続先であるMicrosoft SQL Server のバージョンでは使用できません。 最新情報とダウンロードについては、Microsoft office UpdateのWebサイトを参照してください。」 http://support.microsoft.com/kb/967913/ja を見たのですが、この場合は、SQL Server 2008でした。 当方は2012です。 なんでできないのでしょうか?
- ベストアンサー
- SQL Server
- sbsmadaec
- 回答数1
- トリガーが思うように動かない
初心者です。 SQL SERVER 2012です。 「売上明細」テーブルに、新規行を挿入した時に、「得意先単価マスタ」を更新・または追加したい CREATE TRIGGER [dbo].[INSTEAD_OF_INSERT_ON_T_D売上明細] ON [dbo].[T_D売上明細] INSTEAD OF INSERT <<省略>> /* 得意先別単価マスタの更新 */ IF (@column_new_value$19 <> 0) BEGIN /* 得意先別単価マスタを参照する */ SET @CURSOR_PARAM_CRSTS_CRSTS_得意先コード = @column_new_value$9 SET @CURSOR_PARAM_CRSTS_CRSTS_納品先コード = @column_new_value$10 SET @CURSOR_PARAM_CRSTS_CRSTS_商品コード = @column_new_value$16 DECLARE crsTS CURSOR LOCAL SCROLL_LOCKS FOR SELECT dbo.T_M得意先別単価.作成日付, dbo.T_M得意先別単価.更新日付, dbo.T_M得意先別単価.得意先コード, dbo.T_M得意先別単価.納品先コード, dbo.T_M得意先別単価.商品コード, dbo.T_M得意先別単価.単価区分, dbo.T_M得意先別単価.売上単価1, dbo.T_M得意先別単価.売上単価2, FROM dbo.T_M得意先別単価 WHERE ((dbo.T_M得意先別単価.得意先コード = @CURSOR_PARAM_CRSTS_CRSTS_得意先コード) AND (dbo.T_M得意先別単価.納品先コード = @CURSOR_PARAM_CRSTS_CRSTS_納品先コード) AND (dbo.T_M得意先別単価.商品コード = @CURSOR_PARAM_CRSTS_CRSTS_商品コード)) OPEN crsTS FETCH NEXT FROM crsTS INTO @recTS$作成日付, @recTS$更新日付, @recTS$得意先コード, @recTS$納品先コード, @recTS$商品コード, @recTS$単価区分, @recTS$売上単価1, @recTS$売上単価2 /* 該当が有った場合は更新する */ IF (@@FETCH_STATUS = 0) IF (@column_new_value$19 = 1) UPDATE dbo.T_M得意先別単価 SET dbo.T_M得意先別単価.単価区分 = @column_new_value$19, dbo.T_M得意先別単価.売上単価1 = @column_new_value$22 WHERE CURRENT OF crsTS ELSE IF (@column_new_value$19 = 2) UPDATE dbo.T_M得意先別単価 SET dbo.T_M得意先別単価.単価区分 = @column_new_value$19, dbo.T_M得意先別単価.売上単価2 = @column_new_value$22 WHERE CURRENT OF crsTS ELSE IF (@column_new_value$19 = 1) INSERT INTO dbo.T_M得意先別単価 ( dbo.T_M得意先別単価.得意先コード, dbo.T_M得意先別単価.納品先コード, dbo.T_M得意先別単価.商品コード, dbo.T_M得意先別単価.単価区分, dbo.T_M得意先別単価.売上単価1 ) VALUES ( @column_new_value$9, @column_new_value$10, @column_new_value$16, @column_new_value$19, @column_new_value$22 ); ELSE IF (@column_new_value$19 = 2) INSERT INTO dbo.T_M得意先別単価 ( dbo.T_M得意先別単価.得意先コード, dbo.T_M得意先別単価.納品先コード, dbo.T_M得意先別単価.商品コード, dbo.T_M得意先別単価.単価区分, dbo.T_M得意先別単価.売上単価2 ) VALUES ( @column_new_value$9, @column_new_value$10, @column_new_value$16, @column_new_value$19, @column_new_value$22 ); CLOSE crsTS DEALLOCATE crsTS <<省略>> 上記のように作成してあるのですが、 すでに同一得意先・納品先・商品のマスタが存在する場合は、更新されます。 ですが、存在しない場合、新規に追加したいのですが、そこがうまく動きません。 何が原因でしょうか?
- ベストアンサー
- SQL Server
- rabu_chihaha
- 回答数2
- 既定のインスタンスと名前付きインスタンス
Microsoft SQL Server 2012 をインストールしたいのですが、 既定のインスタンスと名前付きインスタンスのどちらを選べばいいのでしょうか? SQLサーバーは初心者です。
- ベストアンサー
- SQL Server
- TWYRBWQ
- 回答数2
- どれをインストールすればいいのでしょうか?
Microsoft® SQL Server® 2012 Express をインストールしたいのですが http://www.microsoft.com/ja-jp/download/details.aspx?id=29062 のどれをインストールすればいいのでしょうか? 当方win7、64bitです。 JPN\x64\SQLEXPR_x64_JPN.exe JPN\x64\SQLEXPRADV_x64_JPN.exe JPN\x64\SQLEXPRWT_x64_JPN.exe のどれかと思うのですがわかりません。 ちなみにプログラムの一覧をみると、 画像のようにSQL Serverの一部?みたいなのが入っています。
- ベストアンサー
- SQL Server
- ucbpzszsge
- 回答数1
- P2PでSQLServerの接続が解りません…。
当方、データベース、ネットワークについて初心者です。 困っています。教えて下さい。 WindowsXPにてホストPCにSQLServer2008R2Expressをインストール。 P2P接続のクライアントPC2台(WindowsXP)。 クライアント側からSQLserverに接続出来ない。もしくはログインを作成出来ません。 ホスト側ではサーバーを立ち上げることが出来ました。 クライアント側に固定IPアドレスを設定してログイン名(196.168.*.*\<User名>)で作成。 エラー(15401)でUserが見つかりません。で作成出来ません。 もしくはアカウントの場所を検索しても、クライアントが見つかりません。 SQLserver認証でUser作成後、 クライアント側にManagementStudioをインストールしてサーバーにSQLServer認証を試みましたが エラー(18456)が出ました。 ちなみにクライアント側からホストPCのサーバー名が確認は出来ています。 ネットワーク設定に問題があるのでしょうか? それともアプリケーション側の設定なのでしょうか? どなたかどうぞよろしくお願いします。
- 締切済み
- SQL Server
- ks0005555
- 回答数1
- クエリビルダで列名を変数にしたいが
VisualStudio2010でwebアプリを作成しています。 クエリビルダでSQL文を作成しSQLサーバにアクセスしています。 このSQL文でわからない点があります。 列1、列2、列3のフィールドを持つテーブルがあるとします。 ドロップダウンリストで選択した項目により、ある時は列1だけ取得し ある時は列2だけ取得し、ある時は列3だけ取得する様なSQL文を作りたいのですが、どうすればよいかわかりません、列名を変数にできればよさそうなんですが、そんなことできますか? ある時は SELECT 列1 FROM table1 ある時は SELECT 列2 FROM table1 ある時は SELECT 列3 FROM table1 としたいので SELECT @列名 FROM table @列名は変数のつもりです。 このようにできればよいと思っていますが・・・ よろしくおねがいします
- 締切済み
- SQL Server
- shitochin
- 回答数1
- パラメータによってDistinctを入れたい場合
SSRSを使用しています。 検索SQL-A があるとき。 パラメータによってその結果にDISTINCTを入れたい場合の処置として。 どのようなことを追記すればよろしいでしょうか。 ざっくりとした質問で申し訳ありませんが。 ご教授の程よろしくお願いいたします。
- 締切済み
- SQL Server
- yuha_1234
- 回答数1
- Float型の時の計算結果がおかしい
ユーザー側で、Microsoft SQL Server2000を使用しています。 計算結果がおかしいので、仕事場で、SQL2008環境で互換モードでも、以下の現象が出てこまって おります。テストで、確認しました。 23.0 - 22.1 の計算結果を0.9と出したいのですが、 0.899999999999999 と結果が返ってきます。 どこが間違っているのでしょうか? SELECT [Field01] AS 'Field01' ,[Field02] AS 'Field02' ,[Field01]-[Field02] AS 'Field01-02' ,(CAST(23 AS FLOAT) - cast(22.1 AS FLOAT) ) AS 'test1' ,(CAST(23 AS REAL ) - cast(22.1 AS REAL ) ) AS 'test2' FROM [dbo].[Table01]
- ベストアンサー
- SQL Server
- ghost305jp
- 回答数3
- SQL SELECT文の書き方
お世話になります。 下記ような3個のテーブルから、下記画面表示内容のようにするには、 どのようなSQLを書けばよろしいでしょうか ご教示願います。 所有者テーブル 所有者ID,所有者名 1,田中 2,鈴木 3,前田 土地テーブル 所有者ID,取得日,面積 1,11/22,100 1,11/24,30 1,11/26,150 2,4/2,45 2,12/4,120 家屋テーブル 所有者ID,取得日,延床面積 1,11/25,30 1,11/30,12 画面表示内容 所有者ID,名前,土地取得日,面積,家屋取得日,延床面積 1,田中,11/26,150,11/30,12 1,田中,11/24,30,11/25,30 1,田中,11/22,100,空白,空白 2,鈴木,12/4,120,空白,空白 2,鈴木,4/2,45,空白,空白 3,前田,空白,空白,空白,空白 よろしくお願いします。
- ベストアンサー
- SQL Server
- RISEMYZK
- 回答数4
- SQLServer2008Express について
今まで SQL Server2000 を使用していました。 OSはWinXp Proです。 今日アンインストールして、SQLServer2008 Express (SP3)をインストールしたのですが、 起動していないようなのです。 というのも SQLServer2000 の場合、OS起動すると右下に SQLServer のアイコンが表示されクリックすると起動しているのがわかったのですが、インストールした後、一度もこのアイコンが表示されません。 起動するには何か設定でも必要なのでしょうか?
- ベストアンサー
- SQL Server
- yamada009
- 回答数1
- SQLServer2000の移行の難易度
現在SQLServer2000で運用しているサービスがありますが、 SQLServerでは8000バイト制限があるため、 2005か2008に変更しようと予定しています。 しかし2000→2005や 20005→2008 移行で難航したという意見が結構ききます。 コーディングを結構変更しないといけないのであれば 2000で8000バイトずつに区切ってExecuteしようと思いますが、 どれくらい移行は大変なのでしょうか?
- ベストアンサー
- SQL Server
- ENTRE
- 回答数1
- ユニオンクエリについて
お世話になります。 クエリAとクエリBがあり、ユニオンクエリにて両クエリを結合させたいと思っております。 しかし、クエリBにしかないフィールド(test)がある為、「列数が一致しません」となってしまいます。 このような場合、一般的にはどのようにして対処するのでしょうか。 恐らくクエリAにtestというフィールドを仮想的に?追加するのだと思いますが、やり方がわかりません。 ご教授の程、宜しくお願い致します。
- ベストアンサー
- SQL Server
- naoto0216
- 回答数1
- sqlのクエリについて
C#からデータベースsql server 2008にデータセット、データリードする簡単なアプリを作りました sqlのクエリについて質問です リードしたデータのTOP行と最終行の2つのレコードを取得する場合どうすればいいでしょうか? select TOP A,B,C From test WHERE なら TOP行のみになってしまいます 最終行のレコードの取得方法は、いい方法が思い浮かびません。 欲しいのは、TOP行と最終行の2行のみなので、困ってしまいました。 知恵をお借り願えればと思います。 よろしくお願いいたします。
- ベストアンサー
- SQL Server
- gin57773222
- 回答数1
- SQL Server 6.5 日本語版 SP5a
SQL Server 6.5 日本語版(x86)用の Service Pack 5a って、現在(2012年11月時点)でも個別に入手・ダウンロード可能でしょうか? ダウンロード先などご存知の方は教えていただけないでしょうか? よろしくおねがいいたします。 ちなみに、こちらからはなぜか英語版のものしかダウンロードできませんでした… http://support.microsoft.com/kb/274036/ja http://support.microsoft.com/kb/197177/ja ftp://ftp.microsoft.com/bussys/sql/public/fixes/usa/SQL65/Sp5/Sp5ax86.exe ftp://ftp.microsoft.com/Softlib/MSLFILES/Sp5ax86.exe
- 締切済み
- SQL Server
- tomoarai
- 回答数1
- T-SQL 動的に優先順ごとにデータを抽出する方法
テーブル"t_table"にカラム"col1","col2"が有り、以下の ようにデータが登録されていると仮定して |col1|col2| --------- |aaaa|00gg| |aaaa|00dd| |aaaa|00ff| の場合は行"|aaaa|00ff|"のみ抽出。 |col1|col2| --------- |aaaa|00gg| |aaaa|00dd| の場合は行"|aaaa|00gg|"のみ抽出。 |col1|col2| --------- |aaaa|00dd| の場合は行"|aaaa|00dd|"のみ抽出。 ここで優先順の基準になるのはカラム"col2"に 登録されているデータであり、その優先順は 1.00ff 2.00gg 3.00dd です。 上記のように優先順による抽出はどのようなSQL を組めば実現できるのでしょうか?
- 締切済み
- SQL Server
- NoMusicNoLife49
- 回答数1
- SQLserver算術オーバーフローエラーについて
使用環境は DB SQL Server2008 Express 使用ツールは Microsoft SQL Server Management Studio です SQLserver2000からSQLserver2008DBへ移行しようとしているのですが ストアドプロシージャのところでうまくいきません 具体的には、処理を走らせると下記メッセージが出てきます floatをデータ型numericに変換中に、算術オーバーフローエラーが発生しました プロシージャ"○○"は、許可されていないステータスNULLを返そうとしました。 代わりにステータス0を返します 調べると 小数点以下があるフィールド同士を掛けて、その結果の小数点以下をROUNDで切り 捨てた値を小数点のないフィールドに追加しようとするとエラーになる とありました。 下記 2行あたりが怪しいと思うのですが対処方法がわかりません。 ご教授願えないでしょうか? SET @GetRand = CAST(RAND()*10 AS numeric(1,0)) … SET @GetRand = CAST(RIGHT(CONVERT(varchar,CAST(RAND()*100 AS numeric(2,0))+100),2) As numeric(2,0)) またストアドプロシージャは、VBのようにデバッグで1行単位で処理を確認してい くことはできないのでしょうか?
- ベストアンサー
- SQL Server
- kantada2012
- 回答数1