2016-05-31 10 views
-2

をトラブル:SQLスクリプトは、私は次のSQLスクリプトを使用してemployeeIDsを取得しようとしています

SELECT * from tblEmployees 
GO 
CREATE PROCEDURE spGetEmployeeID10 
AS 
BEGIN 
    SELECT employeeID 
    FROM tblEmployees 
END 

スクリプトが実行されますが、列の名前のすべてと、テーブル全体を返します。社員コード、lastNameの、firstNameの、コメント。ただし、employeeID列のみを返す必要があります。私は明白な間違いをしていますか?私は、スクリプトを変更し、再びそれを再実行しようとするたびに、私はスクリプトがすでに存在というエラーを取得し、また、SQLサーバー管理スタジオ2014を使用しています。単純にスクリプトを編集して同じ名前で再実行する方法はありますか? ありがとうございました!

+3

あなたは、ストアドプロシージャ、いないスクリプトを持っています。それらは2つの異なるものです。既存のストアドプロシージャをCREATEステートメントで変更することはできません.ALTERステートメントを使用する必要があります。 – Tim

+0

@TImはどうもありがとうございました!私はSQLを初めて使い、あなたのフィードバックに非常に感謝しています! – Johnathan

答えて

0

は、「私は明らかに間違っているのでしょうか?」はい、私は怖いので、最初のselect文は、第二は、ストアドプロシージャを作成して、すべてのものを返しています。私の推測では、これが欲しいということです:

CREATE PROCEDURE spGetEmployeeID10 
AS 
BEGIN 
    SELECT employeeID 
    FROM tblEmployees 
    --my guesswork come further and I added next line 
    where employeeID = 10 
END 
GO 

EXEC spGetEmployeeID10 
GO 
+0

ありがとうございます!私はSQLを初めて使用しており、積極的に学習しています。 :) – Johnathan

0

あなたが持っているのは、2つの異なる操作です。

最初はすべてを返しますあなたの選択*です。 2番目はストアドプロシージャの作成で、何も返されません。そのため、ストアドプロシージャのクエリに含まれる結果ではなく、select *結果が表示されます。

関連する問題