SELECT * FROM OPENXML在sql2000、sql2005中使用的不同
最近有一个SQL Server应用进行库移植,原本运行在SQL2000下,移植到SQL2005下.结果出现下列提示:服务器: 消息 492,级别 16,状态 1,过程 sp_Parse_XML,行 20在通过 OPENQUERY 和 OPENROWSET 获得的结果集中不允许有重复的列名。列名 "ST" 是重复的。模块 'sp_proc_XML' 取决于缺少的对象 'sp_Parse_XML'。仍将创建此模...
关于一个"恒真(恒假)条件"与"NULL参与比较判断"共同作用引发的语句结果异常
看标题,自己也觉得有些拗口.主要是两方面:(1)恒真(恒假)条件:不少开发人员,为了拼接语句的便利,采用恒真(比如1=1)条件为基础,拼接若干个and条件,这样就可以不做判断条件之前应该是where还是and,同样道理,采用恒假(比如1<>1)条件为稽查,拼接若干个or条件,这样就可以不做判断条件前面应该是where还是or.这种做法,在逻辑...
无法完成游标操作,因为在声明该游标后,所设置的选项发生了更改
近日,一个应用的SQL Server数据库由SQL2000移植到SQL2008环境下.原本正常的一个功能,移植后却提示:"无法完成游标操作,因为在声明该游标后,所设置的选项发生了更改"经查找原因,是对应的一个存储过程中,因为需要进行星期几的判断,所以用了SET DATEFIRST 1语句.而这个set语句位置写在了定义游标(declare)与打开游标(ope...
SQL Server语句删除带有默认值的字段
打算删除tbl_1表的col_1列,但如果此列设置有默认值的话直接ALTER TABLE tbl_1 DROP COLUMN col_1会提示有对象存在,而无法删除.需要先删除对应的默认值,然后删除列,具体如下: declare @sss varchar(100); select @sss=name from sysobjects where xtype='D' and id= (select b.cdefa...