MSSQL网页设计将表中的某个字段转换成标识字段,并保存...
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。转换/*--将表中的某个字段转换成标识字段,并保存本来的值
注重,由于要删除原表,以是,假如表和其他表的联系关系,这些联系关系要从头创立
--邹建2003.12--*/
/*--挪用示例
execp_setid表名,要转换的字段名
--*/
ifexists(select*fromdbo.sysobjectswhereid=object_id(N.)andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure.
GO
CREATEPROCP_SETID
@tbnamesysname,--要处置的表名
@fdnamesysname--要转换为标识字段的字段名
as
declare@s1varchar(8000),@s2varchar(8000),@tmptbsysname
select@s1=,@s2=,@tmptb=
select@s1=@s1+,[+name+]
+casenamewhen@fdnamethen=identity(bigint,1,1)elseend
,@s2=@s2+,[+name+]
fromsyscolumnswhereobject_id(@tbname)=id
select@s1=substring(@s1,2,8000),@s2=substring(@s2,2,8000)
exec(selecttop0+@s1+into+@tmptb+from[+@tbname+]
setidentity_insert+@tmptb+on
insertinto+@tmptb+(+@s2+)select+@s2+from[+@tbname+]
setidentity_insert+@tmptb+off
)
exec(droptable[+@tbname+])
execsp_rename@tmptb,@tbname
go
/*==========================================================*/
--利用测试
--创立测试的表
createtable表(编号bigint,姓名varchar(10))
insertinto表
select1,张三
unionallselect2,李四
unionallselect4,王五
go
--挪用存储历程,将编号字段改成标识字段
execp_setid表,编号
go
--显现处置了局
select*from表
--显现是不是修正乐成
selectnamefromsyscolumns
whereobject_id(表)=idandstatus=0x80
go
--删除测试
droptable表
MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。) XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关 SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
页:
[1]