--创建了表Tool
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO--插入数据
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--创建了表Tool1与表Tool同结构
CREATE TABLE dbo.Tool1(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO执行insert into Tool1 select * from Tool将表Tool的数据插入Tool1时报错消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Tool1'中的标识列指定显式值。设置SET IDENTITY_INSERT dbo.Tool1 On后故障依旧设置SET IDENTITY_INSERT dbo.Tool On后故障也依旧
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO--插入数据
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--创建了表Tool1与表Tool同结构
CREATE TABLE dbo.Tool1(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO执行insert into Tool1 select * from Tool将表Tool的数据插入Tool1时报错消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Tool1'中的标识列指定显式值。设置SET IDENTITY_INSERT dbo.Tool1 On后故障依旧设置SET IDENTITY_INSERT dbo.Tool On后故障也依旧
解决方案 »
- 在关键字 'constraint' 附近有语法错误?
- 100分求此存储过程的解法?乐于助人的和有实力的来拿!小弟先行谢过啦!不够分再加!
- 急!急!急!哪里有SQL-SERVER数库下载!!!!!!!急急急急急急!!!!!!!!!!!!!!!!
- 导入excel到数据库表,并保证插入的数据于原来表中数据没有重复(求效率好的方法)
- 存储过程 Group by +变量
- 寻找一个能算出某天是星期几的函数~~
- 遇到这种情况,大家如何处理?
- SQL server如何将数据库导出到一个文件,跟导入一个相应的数据库
- 在存储过程如何执行@strSql中的语句?在线等!正确立刻结帖!
- 那里提供下载报表制作Crystal Report 和 VSView,急急急急!!
- sql server 2000中的数据库维护计划无法删除早于此时间的文件
- 如何修改 MSSQL2005 的默认编码(字符集)?
--测试的表
CREATE TABLE ta(id int IDENTITY(1,1),col int)
CREATE TABLE tb(id int IDENTITY(1,1),col int)
GO--设置 IDENTITY_INSERT 属性
SET IDENTITY_INSERT ta ON
SET IDENTITY_INSERT tb ON
GO
/*======================================================*/
--2. 如果插入记录的标识值大于表的当前标识值,则SQL Server自动将新插入值作为当前标识值使用
--测试的表
CREATE TABLE tb(id int IDENTITY(1,1),col int)--强制在表中插入标识值
SET IDENTITY_INSERT tb ON
INSERT tb(id,col) VALUES(10,1)
SET IDENTITY_INSERT tb OFFINSERT tb(col) VALUES(2)
SELECT * FROM tb
/*--结果
id col
----------------- -----------
10 1
11 2
--*/
GO
/*======================================================*/
--3. 如果插入记录的标识值小于表的当前标识值,则表的当前标识值不受新插入值的影响
--测试的表
CREATE TABLE tb(id int IDENTITY(1,1),col int)
INSERT tb VALUES(1)
INSERT tb VALUES(2)--强制在表中插入标识值
SET IDENTITY_INSERT tb ON
INSERT tb(id,col) VALUES(1,11)
SET IDENTITY_INSERT tb OFFINSERT tb(col) VALUES(3)
SELECT * FROM tb
/*--结果
id col
----------------- -----------
1 1
2 2
1 11
3 3
--*/
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO--插入数据
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--创建了表Tool1与表Tool同结构
CREATE TABLE dbo.Tool1(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GOset identity_insert Tool1 on
-->Tool1要显式指定列名:
insert into Tool1(ID,Name) select * from Tool
set identity_insert Tool1 off-->还不如直接这样:
insert into Tool1 select Name from Tool
select name from tool
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Tool1'中的标识列指定显式值。 设置SET IDENTITY_INSERT dbo.Tool1 On后故障依旧 ---------------
要加上表名的字段对应关系!SET IDENTITY_INSERT dbo.Tool1 On
insert into Tool1(Id,name) select id,name from Tool
指点列名就OK
select name
from tool
就是指定用tool表中的NAME列字段來填充TOOL1表中的NAME字段.
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO --插入数据
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 --创建了表Tool1与表Tool同结构
CREATE TABLE dbo.Tool1(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO
insert Tool1([name])
select [name] from Tool