بدست آوردن عدد بعدی تولید شده برای ستون ID در SQL
با سلام.
گاهی نیاز است که ما بتونیم تا عدد بعدی ستون ID رو که PrimaryKey کردیم و به صورت اتوماتیک زیاد میشه بخونیم.
اگر Table ما خالی نباشه که به راحتی میشه با LINQ این کار رو انجام داد
public int GetLastNewsID() { return TableNames.Select(q => q.id).Max(); }
اما اگر Table ما خالی باشه تابع بالا Exception میده و کار خراب میشه. برای اینکه هیچ وقت با Exception مواجه نشیم باید از T-SQL استفاده کنیم. خوب من تابع مورد نیاز برای این کار رو براتون نوشتم که امیدوارم به دردتون بخوره.
Create FUNCTION [dbo].[GetLastNewsID](@TableName NVARCHAR(50)) RETURNS int AS BEGIN RETURN(SELECT IDENT_CURRENT (@TableName) AS Current_Identity); END
حالا اگر بخواهیم از خود LINQ استفاده کنیم تابع زیر کار ما رو راه می اندازه:
public int GetLastID(string tableName)
{
const string command = @"SELECT IDENT_CURRENT ({0}) AS Current_Identity;";
var id = EntityModel.ExecuteStoreQuery(command, tableName).First();
return Convert.ToInt32(id);
}
کلمات کلیدی :
next automatically incrementing primary key
برچسب های این مطلب : sql و بریده کد و ترفند و linq
