欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sql自動(dòng)增長(zhǎng)標(biāo)識(shí)導(dǎo)致導(dǎo)入數(shù)據(jù)問題的解決方法

 更新時(shí)間:2012年11月23日 18:26:35   作者:  
對(duì)于一個(gè)設(shè)了自動(dòng)增長(zhǎng)標(biāo)識(shí)的數(shù)據(jù)表來說,它的字段的值是由數(shù)據(jù)庫自動(dòng)設(shè)置的;這在導(dǎo)數(shù)據(jù)時(shí)很麻煩
對(duì)于一個(gè)設(shè)了自動(dòng)增長(zhǎng)標(biāo)識(shí)的數(shù)據(jù)表來說,它的字段的值是由數(shù)據(jù)庫自動(dòng)設(shè)置的;這在導(dǎo)數(shù)據(jù)時(shí)很麻煩。

當(dāng)我們導(dǎo)數(shù)據(jù)時(shí),我們往往想想將標(biāo)識(shí)字段的數(shù)據(jù)也導(dǎo)進(jìn)來,怎么辦呢?

方法有兩種:

1.用數(shù)據(jù)庫管理工具在界面將表的自動(dòng)增長(zhǎng)標(biāo)識(shí)去除,導(dǎo)完數(shù)據(jù),再在界面里改回來。(這種方法麻煩,且要?jiǎng)訑?shù)據(jù)表設(shè)置中,不推薦)

2.用SET IDENTITY_INSERT OFF和SET IDENTITY_INSERT ON(推薦這種方法)

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }
database_name
指定的表所在的數(shù)據(jù)庫的名稱。

schema_name
表所屬架構(gòu)的名稱。

table
包含標(biāo)識(shí)列的表的名稱。

注釋
任何時(shí)候,一個(gè)會(huì)話中只有一個(gè)表的 IDENTITY_INSERT 屬性可以設(shè)置為 ON。如果某個(gè)表已將此屬性設(shè)置為 ON,則對(duì)另一個(gè)表發(fā)出 SET IDENTITY_INSERT ON 語句時(shí),SQL Server 將返回一個(gè)錯(cuò)誤信息,指出 SET IDENTITY_INSERT 已設(shè)置為 ON,并報(bào)告已將其屬性設(shè)置為 ON 的表。

如果插入值大于表的當(dāng)前標(biāo)識(shí)值,則 SQL Server 自動(dòng)將新插入值作為當(dāng)前標(biāo)識(shí)值使用。


SET IDENTITY_INSERT 的設(shè)置是在執(zhí)行或運(yùn)行時(shí)設(shè)置的,而不是在分析時(shí)設(shè)置的。

權(quán)限
用戶必須擁有表,或?qū)Ρ砭哂?ALTER 權(quán)限。

示例
下面的示例將創(chuàng)建一個(gè)包含標(biāo)識(shí)列的表,并說明如何使用 SET IDENTITY_INSERT 設(shè)置來填充由 DELETE 語句導(dǎo)致的標(biāo)識(shí)值中的空隙。

復(fù)制代碼 代碼如下:

USE AdventureWorks2012;
GO
-- Create tool table.
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO
-- Inserting values into products table.
INSERT INTO dbo.Tool(Name) VALUES ('Screwdriver')
INSERT INTO dbo.Tool(Name) VALUES ('Hammer')
INSERT INTO dbo.Tool(Name) VALUES ('Saw')
INSERT INTO dbo.Tool(Name) VALUES ('Shovel')
GO


-- Create a gap in the identity values.
DELETE dbo.Tool
WHERE Name = 'Saw'
GO

SELECT *
FROM dbo.Tool
GO

-- Try to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO

-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT dbo.Tool ON
GO

-- Try to insert an explicit ID value of 3.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO

SELECT *
FROM dbo.Tool
GO
-- Drop products table.
DROP TABLE dbo.Tool
GO

相關(guān)文章

最新評(píng)論