Visual studio2017のSQLQueryで
CREATE TABLE [dbo].[NAME] ( [ID] INT IDENTITY (1, 1) NOT NULL, [Name] NVARCHAR (20) NULL, CONSTRAINT [NUM] PRIMARY KEY CLUSTERED ([ID] ASC) );
というテーブルを作り
ID | Name |
---|---|
1 | Aさん |
2 | Bさん |
を格納しました。
AさんのIDを取得したくて
SELECT ID FROM [dbo].[Name]
WHERE Name = 'Aさん';
として取得しました。
1が表示されません。
SQLServer
1SELECT * FROM [dbo].[Name]
した結果
ID | Name |
---|---|
1 | Aさん |
2 | Bさん |
と表示されました
どこが間違っているかわからないので教えてください。
開発環境
Visual Studio 2017のSQLQuery
使用言語
SQL Server
検索
どこが間違っているかわからないので検索していません。
そもそもSQLQueryでWHERE句なしでは1,2の2レコード取得できるのでしょうか?
SQLQueryでもWHERE句は使っています。
いや、WHEREを使用しない場合は、きちんと全件取得できていますか?という確認です。
(不具合の原因を探る場合は、原因として除外できるところは確認して除外していくための確認です。)
WHEREを使用しない場合は、きちんと全件取得できます。
念のため確認です。
> CONSTRAINT [NUM] PRIMARY KEY CLUSTERED ([BookID] ASC)
となっていますが、kswdfrさんが確認されている環境は質問記載されている
ものと全く同じもので確認されてますか?
質問記載の以下は質問用に端折ってたりしませんか?
(実際は項目や条件がもうちょっと複雑なものだったりしませんか?)
・質問記載のテーブル構造(テーブル名がNAMEでIDとNAMEの2項目)
・データ(「1,Aさん」「2,Bさん」の2レコード)
・WHERE句の条件(NAME='Aさん'のみ)
同じもので確認しました。
>>質問記載の以下は質問用に端折ってたりしませんか?
(実際は項目や条件がもうちょっと複雑なものだったりしませんか?)
・質問記載のテーブル構造(テーブル名がNAMEでIDとNAMEの2項目)
・データ(「1,Aさん」「2,Bさん」の2レコード)
・WHERE句の条件(NAME='Aさん'のみ)
>端折ってたりしません。
SQLServer2017のSQLQueryで作ったCREATE TABREをMicrosoft SQL Server Management Studio 18 にコピーして使っています。
SQL Server2017のSQLQueryはVisual Stdio2017のSQLQueryの間違えでした。
申し訳ありませんでした。
Name列の値を'Aさん'や'Bさん'ではなく'A'や'B'のように半角英字だけにして、そのうえで `SELECT ID FROM [dbo].[Name] WHERE Name = 'A';` を実行すると、どうなりますか?状況変わらず(1が表示されない)なのかどうか。
`SELECT ID FROM [dbo].[Name] WHERE Name = 'A';` を実行しても1は表示されません。
「Visual Studio 2017のSQLQuery」を使ってどのようなコードを書いて実行したのか、提示することはできますか?
SELECT ID FROM [dbo].[Name]
WHERE Name = 'Aさん';
と
SELECT ID FROM [dbo].[Name] WHERE Name = 'A';で表示しましたが1は表示されません。
「どのようなコードを書いて実行したのか、提示することはできますか?」と伺ったのは、「Visual Studio 2017のSQLQuery」というのは Entity Framework の Database.SqlQuery メソッドのことだと思うのですが、それをC#等のコードでどのように書いて実行したのか、という意味でした。
splserver文で書いてからC#で書くのでC#文は書いていません。
うーん、ちょっと私には理解の及ばない領域のお話のようですね。せっかくやりとりしていただきましたが、お力にはなれなさそうです。失礼しました。
CREATE TABLE だけ SSMS を使ったようですが、同じ環境で作るとどうなりますか?
回答3件
あなたの回答
tips
プレビュー