2009-11-13 114 views
0

我想要得到我的表image的最後一個身份。得到表的最後一個身份

下面的代碼是不工作:

SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["DSN"]); 
SqlCommand ident = new SqlCommand("SELECT IDENT_CURRENT(‘image’)", connection); 
connection.Open(); 
id = Convert.ToInt32(ident.ExecuteScalar()); 

我需要這個,這樣即使我刪除了最後一排,我可以得到最後自動生成的身份。

回答

0

對於MySQL,您的代碼看起來應該起作用。如果該命令不起作用,您會收到什麼錯誤消息?

對於SQL Server,你可以檢索從sys.identity_columns表最後生成的標識:

select last_value 
where name = 'ColumnName' 
and object_id = object_id('TableName') 
0

我的應用程序上傳的服務器上的文件並將其保存到數據庫,並與刪除鏈接,每個綁定到(GridView行)

如果我使用LAST_VALUE每次我收到相同的最後一個ID

SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["DSN"]); 
SqlCommand ident = new SqlCommand("select LAST_VALUE where name = 'Id' and object_id = object_id('image')", connection); 
connection.Open(); 
id = Convert.ToInt32(ident.ExecuteScalar()); 

_fileName = fileName; 

_fullFileName = _outputPath + (id + 1).ToString() + prefix + Path.GetFileName(_fileName); 

_fs = new FileStream(_fullFileName, FileMode.Create); 

我的問題是,磨片n我正在使用如下所示的MAX(Id),直到有人刪除最後一行或MAX行時我失去了我的身份,這一切都很好 - 這就是爲什麼我想要獲得最後一個自動增加的身份而不是最後一個ID列的值

SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["DSN"]); 
SqlCommand ident = new SqlCommand("SELECT MAX(Id) from image", connection); 
connection.Open(); 

SqlDataReader result = ident.ExecuteReader(); 
result.Read(); 

object obValue = result.GetValue(0); 
id = Convert.ToInt32(obValue.ToString()); 

connection.Close(); 
1
SELECT 
SCHEMA_NAME(OBJECTPROPERTY(C.OBJECT_ID, 'SCHEMAID')) AS [SCHEMA NAME], 
OBJECT_NAME(C.OBJECT_ID) AS [TABLE NAME], C.NAME AS [COLUMN NAME], 
T.NAME AS [COLUMN DATA TYPE],SEED_VALUE, 
INCREMENT_VALUE,LAST_VALUE AS CURRENTMAXVALUE 
FROM SYS.IDENTITY_COLUMNS C INNER JOIN SYS.TYPES T ON C.USER_TYPE_ID = T.USER_TYPE_ID 
WHERE COLUMNPROPERTY(OBJECT_ID, C.NAME, 'ISIDENTITY') = 1 
AND LAST_VALUE IS NOT NULL 
ORDER BY LAST_VALUE DESC 
0

SELECT IDENT_CURRENT( '圖像') - 1

假設你被1

increamenting
相關問題