校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQL SERVER 自增列

SQL SERVER 自增列

熱門標簽:廣東防封卡外呼系統原理是什么 菏澤語音電銷機器人加盟公司 知名電銷機器人價格 地圖標注牌 外呼系統改進 長沙智能外呼系統 湖南電腦外呼系統平臺 分享百度地圖標注多個位置 電銷機器人公司 需要哪些牌照

declare @Table_name varchar(60)

set @Table_name = '';

if Exists(Select top 1 1 from sysobjects
           Where objectproperty(id, 'TableHasIdentity') = 1
             and upper(name) = upper(@Table_name)
         )
     select 1
else select 0

-- or

if Exists(Select top 1 1 from sysobjects so
           Where so.xtype = 'U'
             and upper(so.name) = upper(@Table_name)
             and Exists(Select Top 1 1 from syscolumns sc
                         Where sc.id = so.id
                           and columnproperty(sc.id, sc.name, 'IsIdentity') = 1
                       )
         )
       select 1
else select 0

判斷Table是否存在自增列(Identity column),并查出自增列相關數據:

declare @Table_name varchar(60)
set @Table_name = '';


declare @Table_name varchar(60)
set @Table_name = 'zy_cost_list';
Select so.name Table_name,                   --表名字
       sc.name Iden_Column_name,             --自增字段名字
       ident_current(so.name) curr_value,    --自增字段當前值
       ident_incr(so.name) incr_value,       --自增字段增長值
       ident_seed(so.name) seed_value        --自增字段種子值
  from sysobjects so
 Inner Join syscolumns sc
    on so.id = sc.id
       and columnproperty(sc.id, sc.name, 'IsIdentity') = 1
 Where upper(so.name) = upper(@Table_name)

資料引用:

DBCC CHECKIDENT

檢查指定表的當前標識值,如有必要,還對標識值進行更正。

語法

DBCC CHECKIDENT
    ( 'table_name'

        
[ , { NORESEED
                | { RESEED [ , new_reseed_value ] }
            }
        ]
    )

參數

'table_name'

是要對其當前標識值進行檢查的表名。表名必須符合標識符規則。有關更多信息,請參見使用標識符。指定的表必須包含標識列。

NORESEED

指定不應更正當前標識值。

RESEED

指定應該更正當前標識值。

new_reseed_value

是在標識列中重新賦值時要使用的值。

注釋

如有必要,DBCC CHECKIDENT 會更正列的當前標識值。然而,如果標識列是使用 NOT FOR REPLICATION 子句(在 CREATE TABLE 或 ALTER TABLE 語句中)創建的,則不更正當前標識值。

如果標識列上有主鍵或唯一鍵約束,無效標識信息可能會導致錯誤信息 2627。

對當前標識值所做的具體更正取決于參數規范。

DBCC CHECKIDENT 語句 所做的標識更正
DBCC CHECKIDENT ('table_name', NORESEED) 不重置當前標識值。DBCC CHECKIDENT 返回一個報表,它指明當前標識值和應有的標識值。
DBCC CHECKIDENT ('table_name') 或
DBCC CHECKIDENT ('table_name', RESEED)
如果表的當前標識值小于列中存儲的最大標識值,則使用標識列中的最大值對其進行重置。
DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 當前值設置為 new_reseed_value。如果自創建表后沒有將行插入該表,則在執行 DBCC CHECKIDENT 后插入的第一行將使用 new_reseed_value 作為標識。否則,下一個插入的行將使用 new_reseed_value + 1。如果 new_reseed_value 的值小于標識列中的最大值,以后引用該表時將產生 2627 號錯誤信息。

當前標識值可以大于表中的最大值。在此情況下,DBCC CHECKIDENT 并不自動重置當前標識值。若要在當前標識值大于列中的最大值時對當前標識值進行重置,請使用兩種方法中的任意一種:

  • 執行 DBCC CHECKIDENT ('table_name', NORESEED) 以確定列中的當前最大值,然后使用 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 語句將該值指定為 new_reseed_value

  • new_reseed_value 置為很小值來執行 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value),然后運行 DBCC CHECKIDENT ('table_name', RESEED)。
結果集

不管是否指定任何選項(針對于包含標識列的表;下例使用 pubs 數據庫的 jobs 表),DBCC CHECKIDENT 返回以下結果集(值可能會有變化):

Checking identity information: current identity value '14', current column value '14'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
權限

DBCC CHECKIDENT 權限默認授予表所有者、sysadmin 固定服務器角色和 db_owner 固定數據庫角色的成員且不可轉讓。

示例
A. 如有必要,重置當前標識值

下例在必要的情況下重置 jobs 表的當前標識值。

USE pubs
GO
DBCC CHECKIDENT (jobs)
GO
B. 報告當前標識值

下例報告 jobs 表中的當前標識值;如果該標識值不正確,并不對其進行更正。

USE pubs
GO
DBCC CHECKIDENT (jobs, NORESEED)
GO
C. 強制當前標識值為 30

下例強制 jobs 表中的當前標識值為 30。

USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO
您可能感興趣的文章:
  • sqlserver2005自動創建數據表和自動添加某個字段索引
  • SQL Server 打開或關閉自增長
  • SqlServer Mysql數據庫修改自增列的值及相應問題的解決方案
  • SQL Server 2008怎樣添加自增列實現自增序號
  • SQL Server設置主鍵自增長列(使用sql語句實現)
  • SQL Server修改標識列方法 如自增列的批量化修改
  • Oracle 實現類似SQL Server中自增字段的一個辦法
  • SQL Server 中調整自增字段的當前初始值
  • SQL Server數據表字段自定義自增數據格式的方法

標簽:珠海 呼和浩特 福建 西寧 商洛 美容院 泉州 天水

巨人網絡通訊聲明:本文標題《SQL SERVER 自增列》,本文關鍵詞  SQL,SERVER,自,增列,SQL,SERVER,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL SERVER 自增列》相關的同類信息!
  • 本頁收集關于SQL SERVER 自增列的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 通山县| 鲁甸县| 出国| 托里县| 黑龙江省| 岱山县| 泽普县| 衡东县| 特克斯县| 岑溪市| 华宁县| 葵青区| 布尔津县| 马龙县| 贵州省| 凭祥市| 云安县| 汶上县| 界首市| 峨边| 汕头市| 青田县| 泗水县| 浏阳市| 嘉荫县| 容城县| 长丰县| 芦山县| 盐源县| 方山县| 中西区| 石嘴山市| 华安县| 屏东县| 洛浦县| 寿阳县| 绥阳县| 甘南县| 金湖县| 江安县| 河曲县|