搜尋
首頁資料庫mysql教程 标识列和GUID列

在SQL Server的表中,可能会有两种特殊的列。一种是标识列(Identity),一种是全球唯一标识符(GUID) 首先看第一种 通过使用 IDENTITY 属性可以实现标识符列。这使得开发人员可以为表中所插入的第一行指定一个标识号(Identity Seed 属性),并确定要添加到

在SQL Server的表中,可能会有两种特殊的列。一种是标识列(Identity),一种是全球唯一标识符(GUID)

首先看第一种

通过使用 IDENTITY 属性可以实现标识符列。这使得开发人员可以为表中所插入的第一行指定一个标识号(Identity Seed 属性),并确定要添加到种子上的增量(Identity Increment 属性)以确定后面的标识号。将值插入到有标识符列的表中之后,数据库引擎会通过向种子添加增量来自动生成下一个标识值。当您向现有表中添加标识符列时,还会将标识号添加到现有表行中,并按照最初插入这些行的顺序应用种子值和增量值。同时还为所有新添加的行生成标识号。不能修改现有表列来添加 IDENTITY 属性。

在用 IDENTITY 属性定义标识符列时,注意下列几点:

  • 通过使值能够显式插入,SET IDENTITY_INSERT 可用于禁用列的 IDENTITY 属性。

    ms191131.note(zh-cn,SQL.100).gif

    注意:

    如果在经常进行删除操作的表中存在标识符列,那么标识值之间可能会出现断缺。已删除的标识值不再重新使用。要避免出现这类断缺,请勿使用 IDENTITY 属性。而是可以在插入行时,以标识符列中现有的值为基础创建一个用于确定新标识符值的触发器。

  •  

    与标识列有关几个特殊关键字

    SELECT $IDENTITY FROM Adventureworks.Sales.SalesOrderHeader
    SELECT IDENTITYCOL FROM Adventureworks.Sales.SalesOrderHeader

     

    还有一个系统变量,可以返回当前最新的标识值: @@identity

     

    然后来看看全球唯一标识符列

    尽管 IDENTITY 属性在一个表内自动进行行编号,但具有各自标识符列的各个表可以生成相同的值。这是因为 IDENTITY 属性仅在使用它的表上保证是唯一的。如果应用程序生成一个标识符列,并且该列在整个数据库或全球联网的所有计算机上的所有数据库中必须是唯一的,请使用 uniqueidentifier 数据类型和 NEWID 或 NEWSEQUENTIALID() 函数。此外,还可以应用 ROWGUIDCOL 属性以指示新列是行 GUID 列。与使用 IDENTITY 属性定义的列不同,数据库引擎不会为 uniqueidentifier 类型的列自动生成值。若要插入全局唯一值,请为该列创建 DEFAULT 定义来使用 NEWID 或 NEWSEQUENTIALID 函数生成全局唯一值。有关详细信息,美国空间,香港服务器,请参阅使用 uniqueidentifier 数据。

    可以使用 $ROWGUID 关键字在选择列表中引用具有 ROWGUICOL 属性的列。这与通过使用 $IDENTITY 关键字可以引用 IDENTITY 列的方法类似。一个表只能有一个 ROWGUIDCOL 列,且必须通过使用 uniqueidentifier 数据类型定义该列。OBJECTPROPERTY (Transact-SQL) 函数可用于确定一个表是否具有 ROWGUIDCOL 列,香港服务器,COLUMNPROPERTY (Transact-SQL) 函数可用于确定 ROWGUIDCOL 列的名称。

    以下示例创建 uniqueidentifier 列作为主键的表。此示例在 DEFAULT 约束中使用 NEWSEQUENTIALID() 函数为新行提供值。将 ROWGUIDCOL 属性应用到 uniqueidentifier 列,以便可以使用 $ROWGUID 关键字对其进行引用。

    CREATE TABLE dbo.Globally_Unique_Data (guid uniqueidentifier CONSTRAINT Guid_Default DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, Employee_Name varchar(60) CONSTRAINT Guid_PK PRIMARY KEY (guid) );
    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    MySQL中的存儲過程是什麼?MySQL中的存儲過程是什麼?May 01, 2025 am 12:27 AM

    存儲過程是MySQL中的預編譯SQL語句集合,用於提高性能和簡化複雜操作。 1.提高性能:首次編譯後,後續調用無需重新編譯。 2.提高安全性:通過權限控制限制數據表訪問。 3.簡化複雜操作:將多條SQL語句組合,簡化應用層邏輯。

    查詢緩存如何在MySQL中工作?查詢緩存如何在MySQL中工作?May 01, 2025 am 12:26 AM

    MySQL查詢緩存的工作原理是通過存儲SELECT查詢的結果,當相同查詢再次執行時,直接返回緩存結果。 1)查詢緩存提高數據庫讀取性能,通過哈希值查找緩存結果。 2)配置簡單,在MySQL配置文件中設置query_cache_type和query_cache_size。 3)使用SQL_NO_CACHE關鍵字可以禁用特定查詢的緩存。 4)在高頻更新環境中,查詢緩存可能導致性能瓶頸,需通過監控和調整參數優化使用。

    與其他關係數據庫相比,使用MySQL的優點是什麼?與其他關係數據庫相比,使用MySQL的優點是什麼?May 01, 2025 am 12:18 AM

    MySQL被廣泛應用於各種項目中的原因包括:1.高性能與可擴展性,支持多種存儲引擎;2.易於使用和維護,配置簡單且工具豐富;3.豐富的生態系統,吸引大量社區和第三方工具支持;4.跨平台支持,適用於多種操作系統。

    您如何處理MySQL中的數據庫升級?您如何處理MySQL中的數據庫升級?Apr 30, 2025 am 12:28 AM

    MySQL數據庫升級的步驟包括:1.備份數據庫,2.停止當前MySQL服務,3.安裝新版本MySQL,4.啟動新版本MySQL服務,5.恢復數據庫。升級過程需注意兼容性問題,並可使用高級工具如PerconaToolkit進行測試和優化。

    您可以使用MySQL的不同備份策略是什麼?您可以使用MySQL的不同備份策略是什麼?Apr 30, 2025 am 12:28 AM

    MySQL備份策略包括邏輯備份、物理備份、增量備份、基於復制的備份和雲備份。 1.邏輯備份使用mysqldump導出數據庫結構和數據,適合小型數據庫和版本遷移。 2.物理備份通過複製數據文件,速度快且全面,但需數據庫一致性。 3.增量備份利用二進制日誌記錄變化,適用於大型數據庫。 4.基於復制的備份通過從服務器備份,減少對生產系統的影響。 5.雲備份如AmazonRDS提供自動化解決方案,但成本和控制需考慮。選擇策略時應考慮數據庫大小、停機容忍度、恢復時間和恢復點目標。

    什麼是mySQL聚類?什麼是mySQL聚類?Apr 30, 2025 am 12:28 AM

    MySQLclusteringenhancesdatabaserobustnessandscalabilitybydistributingdataacrossmultiplenodes.ItusestheNDBenginefordatareplicationandfaulttolerance,ensuringhighavailability.Setupinvolvesconfiguringmanagement,data,andSQLnodes,withcarefulmonitoringandpe

    如何優化數據庫架構設計以在MySQL中的性能?如何優化數據庫架構設計以在MySQL中的性能?Apr 30, 2025 am 12:27 AM

    在MySQL中優化數據庫模式設計可通過以下步驟提升性能:1.索引優化:在常用查詢列上創建索引,平衡查詢和插入更新的開銷。 2.表結構優化:通過規範化或反規範化減少數據冗餘,提高訪問效率。 3.數據類型選擇:使用合適的數據類型,如INT替代VARCHAR,減少存儲空間。 4.分區和分錶:對於大數據量,使用分區和分錶分散數據,提升查詢和維護效率。

    您如何優化MySQL性能?您如何優化MySQL性能?Apr 30, 2025 am 12:26 AM

    tooptimizemysqlperformance,lofterTheSeSteps:1)inasemproperIndexingTospeedUpqueries,2)使用ExplaintplaintoAnalyzeandoptimizequeryPerformance,3)ActiveServerConfigurationStersLikeTlikeTlikeTlikeIkeLikeIkeIkeLikeIkeLikeIkeLikeIkeLikeNodb_buffer_pool_sizizeandmax_connections,4)

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版

    VSCode Windows 64位元 下載

    VSCode Windows 64位元 下載

    微軟推出的免費、功能強大的一款IDE編輯器

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    將Eclipse與SAP NetWeaver應用伺服器整合。

    mPDF

    mPDF

    mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),