ここに私の問題があります:emp
と呼ばれるSQL Serverデータベースがあります。それはemployee
テーブル(userid int
カラムを持つ)を持っています。増分userid値+1でemployee
テーブルのuserid
の最後のレコードを取得する必要があります。現時点では、私は自分のGUIでそれを行いました。だから私はそれのためのSQLクエリを書くのですか?SQL Serverテーブルの最後のレコードを取得します
答えて
ユーザーID列を手動で増分する必要はありません。代わりにIDENTITY列を使用してください。それは自動的に新しい行ごとに1を追加します。
CREATE TABLE Employees (
UserId INT IDENTITY PRIMARY KEY NOT NULL,
UserName NVARCHAR(255) NOT NULL,
// etc add other columns here
)
あなたが本当にそれは非常に単純なクエリである最高のユーザーIDを選択する必要がある場合:
SELECT MAX(UserId) + 1
FROM Employees
[編集]
ご意見をもとに、あなたはSELECT MAX(UserId) + 1 FROM Employees
クエリを使用する必要があります。しかし、これは番号がIDになることを保証するものではないことに注意してください。通常、レコードがデータベースに保存されるまで、Id値は表示されません。最高のユーザーIDを持つレコードを返すために
、あなたが行うことができます:
SELECT TOP 1 userid
FROM employee
ORDER BY userid DESC
か...
SELECT MAX(userid)
FROM employee
あなたの計画は、手動でユーザーIDをインクリメントし、新しいを挿入する場合その新しいIDで記録しておくと、これを行うことをお勧めします.2つのプロセスが同時にそのプロセスを実行しようとするとどうなりますか?代わりに、IDENTITY列をユーザーIDとして使用して、自動的に増分を処理してください。
ID列がない場合は、最後に挿入されたレコードが表示されます。
EXECUTE ('DECLARE GETLAST CURSOR DYNAMIC FOR SELECT * FROM [User]')
OPEN GETLAST
FETCH LAST FROM GETLAST
CLOSE GETLAST
DEALLOCATE GETLAST
IDを設定している場合は、以下を使用できます。
SELECT top(1) ID from [YourTable] order by ID desc
問題スロービートすべてのためにありがとうございました –
この状況で**本当に**カーソル(大きな大きなパフォーマンスキラー!!)の必要はありません..... –
これは、オートインクリメントとしてのIDはありません。テーブルを置き換えてみて、結果を確認してください –
保存する前に新しいユーザーIDを取得するには、NextIdテーブルを作成します。
ユーザーを挿入する前に、NEXTIDから新しい値を取得する:
UserId = SELECT Coalesce(NextId, 0) + 1 from NextId
その後NEXTIDテーブル更新:
UPDATE NEXTID SET NextId = IserID
をそしてあなたのユーザー作成コードでその値を使用
あなたはギャップを得ることができます、それらを避けるためにもっと複雑な方法があります。しかし、私はこれを行うと思います
コード、XMLまたはデータサンプルを投稿する場合は、**これらの行をテキストエディタで強調表示し、エディタツールバーの「コードサンプル」ボタン({})を使用して、フォーマットや構文を強調表示します。 –
これがマイナス1の理由ですか? – Karel
- 1. SQL Serverのテーブルから最新のレコードを取得
- 2. SQLのテーブルの最後のレコードを取得する方法
- 3. 最新のレコードを取得するためのAuditテーブルのSQL Server CTE
- 4. SQL Serverクエリ。各IDの最後のレコード
- 5. SQL-Serverテーブルの最後に追加されたレコード
- 6. SQL Server 2012のテーブルから最後に更新されたレコードのIDを取得する方法
- 7. firebaseテーブルから最後のレコードを取得できません
- 8. SQL Server - テーブルからDISTINCTレコードを取得するクエリ
- 9. SQL-別のテーブルのグループから最高のレコードを取得
- 10. 過去7日間の最後のレコードを取得します
- 11. Laravelのテーブルの最後のレコードを取得
- 12. データベースから各グループの最後のレコードを取得しています - SQL Server 2005/2008
- 13. SQL - 過去7日間の最後のレコードを取得します。
- 14. 重複テーブルの最大日時を取得するSQL Server
- 15. テーブルのSQL Serverスキーマを取得する
- 16. SQL Serverで明日の前の最後のmsを取得しますか?
- 17. マスター/詳細テーブルの詳細テーブルの最後のレコードを取得する方法
- 18. 最後のレコード - SQL
- 19. SQLテーブルから最後のorder_idを取得できません
- 20. カサンドラの最後のレコードを取得
- 21. SQL Oracle ---毎月最後のレコードを取得
- 22. SQL:効率的に最後のレコードを取得
- 23. entityframeworkの各グループの最後のレコードを取得しますか?
- 24. SQL Server - テーブルの最終更新時刻を取得
- 25. SQL、最新の関連レコードを取得
- 26. テーブル内の最後のアイテムを取得する - SQL
- 27. SQL Server 2008のテーブルから一意のレコードを取得する方法
- 28. SQL Serverテーブルから各カテゴリの行数を取得します
- 29. SQL Serverのストアドプロシージャからテーブルを取得します
- 30. Djangoはデータベースから最後のレコードを取得します
私のrequiremntはthis.my guiが新しいemloyee.soというフォームを持っているJK.butあなたの迅速なJK.butに感謝あなたがemp table.whenからのユーザーIDを表示するテキストfeildがあります新しい従業員は、そのテストvalをemp id + 1の最後の値として表示します。 –
従業員を実際に追加する前に新入社員のIDを表示する必要がある場合は、上記のクエリ「SELECT MAX(UserId)+ 1 FROM Employees'」を使用します。しかし、新しい従業員が実際に救われたときにId番号ではないチャンスがあります。 –