首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

表变量,IDENTITY_INSERT,order by 的有关问题

2012-01-18 
表变量,IDENTITY_INSERT,order by 的问题?declare@tttable(sidtinyintidentity(1,1),vdecimal(18,2),sttin

表变量,IDENTITY_INSERT,order by 的问题?
declare   @tt   table   (sid   tinyint   identity(1,1),v   decimal(18,2),st   tinyint)

insert   into   @tt  
select   #1.vs,
case
when   ...   then   0
when   ...   then   1
when   ...   then   2
end   si
from   fd()#1
inner   join
fs( ' ')#3  
on   #1.id=#3.id
order   by     vs,si

就会出错:
服务器:   消息   8101,级别   16,状态   1,行   3
仅当使用了列的列表,并且   IDENTITY_INSERT   为   ON   时,才能在表   '@tt '   中为标识列指定显式值。

如果去掉order   by     vs,si,就不会出错!

vs是decimal数据。

[解决办法]
自动增量的列是不是插入值的 ,你去掉自动增量就OK了
[解决办法]
表变量不用设置(这样用的)
declare @ta table(id int identity(1,1),name varchar(10))
insert @ta
select 'a ' union all select 'b '
select * from @ta
针对表才用
SET IDENTITY_INSERT 表名 off

SET IDENTITY_INSERT 表名 ON

热点排行