插入一條記錄后想要立刻獲取其數(shù)據(jù)表中的sql server主鍵返回值。這個(gè)主鍵是自動(dòng)生成的,其實(shí)實(shí)現(xiàn)的方式有很多,比如再進(jìn)行一次查詢(xún),獲取出來(lái)?;蛘咴诓迦霐?shù)據(jù)之前取出最大值,在最大值上面加一等等,方法很多,但是有些很不方便。
成都創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、甕安網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、甕安網(wǎng)絡(luò)營(yíng)銷(xiāo)、甕安企業(yè)策劃、甕安品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供甕安建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):028-86922220,官方網(wǎng)址:www.cdcxhl.com
個(gè)人感覺(jué)最快的方式就是,在插入數(shù)據(jù)后直接獲取sql server主鍵的值,然后返回過(guò)來(lái)。
方法如下:
sql語(yǔ)句如下:
INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;
在sql語(yǔ)句中加入SELECT @@IDENTITY AS returnName;用來(lái)獲取sql server主鍵的值
在程序中獲取返回值:
public int sqlexecutereader(string sql) { DBopen(); SqlCommand myComm = new SqlCommand(sql, Connection); int newID = Convert.ToInt32(myComm.ExecuteScalar()); DBclose(); return newID; }
當(dāng)然在此處主鍵是int類(lèi)型的自動(dòng)增加的。DBopen();DBclose();的操作在此就不多說(shuō)了。
可以參考下面的代碼
SELECT t.* from user_cons_columns t where t.table_name? = '表名' and t.position is not null;? ?--表名必zd須大寫(xiě),如:
TABLE_TEST? ,column即為用戶(hù)的主鍵,user_cons_columns即為用戶(hù)要的主鍵名。
擴(kuò)展資料:
SQL語(yǔ)句
添加主鍵
Alter table tabname add primary key(col)
說(shuō)明:刪除主鍵:Alter table tabname drop primary key(col)
創(chuàng)建索引
create [unique] index idxname on tabname(col…。)
刪除索引:drop index idxname on tabname
參考資料來(lái)源:百度百科-SQL語(yǔ)句大全
以sqlserver2008為例。
1、登錄SQL Server Management Studio。
2、進(jìn)入后,查看左邊的樹(shù),找到要查找的表所在的庫(kù)。
3、依次點(diǎn)擊數(shù)據(jù)庫(kù)——系統(tǒng)數(shù)據(jù)庫(kù)——表——系統(tǒng)表——表名左邊的“+”——鍵
4、如圖所示就是主鍵名:
5、如要?jiǎng)h除,右鍵點(diǎn)擊鍵名,會(huì)有刪除按鈕,點(diǎn)擊刪除即可。
SELECT
表名=case
when
a.colorder=1
then
d.name
else
''
end,
字段序號(hào)=a.colorder,
字段名=a.name,
標(biāo)識(shí)=case
when
COLUMNPROPERTY(
a.id,a.name,'IsIdentity')=1
then
'√'else
''
end,
主鍵=case
when
exists(SELECT
1
FROM
sysobjects
where
xtype='PK'
and
name
in
(
SELECT
name
FROM
sysindexes
WHERE
indid
in(
SELECT
indid
FROM
sysindexkeys
WHERE
id
=
a.id
AND
colid=a.colid
)))
then
'√'
else
''
end,
類(lèi)型=b.name,
占用字節(jié)數(shù)=a.length,
長(zhǎng)度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數(shù)位數(shù)=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空=case
when
a.isnullable=1
then
'√'else
''
end,
默認(rèn)值=isnull(e.text,'')
FROM
syscolumns
a
left
join
systypes
b
on
a.xtype=b.xusertype
inner
join
sysobjects
d
on
a.id=d.id
and
d.xtype='U'
and
d.name'dtproperties'
left
join
syscomments
e
on
a.cdefault=e.id
order
by
a.id,a.colorder