没有2005的测试环境,请教兼容性问题
sqlserver2000上的存储过程和自定义函数,迁移到2005上会要求作调整吗?是否直接就Ok了呢?
------解决方案--------------------不需要作调整,直接可以使用。
------解决方案--------------------Microsoft的东东都是向下兼容的
------解决方案--------------------有星星的大大就是快啊~
------解决方案--------------------大部分不需要調整,如果存儲過程涉及到系統表時可能要相應的修改一下 
 舉例: 
 列出当前数据库(当前用户)的所有表、视图,以及每个表的字段、字段类型、主键、索引 
 --SQL2000的 
 SELECT  
 	表名       = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE  ' ' END, 
 	表說明     = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE, ' ') ELSE  ' ' END, 
 	欄位序號   = A.COLORDER, 
 	欄位名     = A.NAME, 
 	標識       = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ')=1 THEN  '√ 'ELSE  ' ' END, 
 	主鍵       = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= 'PK ' AND PARENT_OBJ=A.ID AND NAME IN ( 
 			SELECT NAME FROM SYSINDEXES WHERE INDID IN( 
 						SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN  '√ ' ELSE  ' ' END, 
 	類型       = B.NAME, 
 	佔用位元組數 = A.LENGTH, 
 	長度       = COLUMNPROPERTY(A.ID,A.NAME, 'PRECISION '), 
 	小數位數   = ISNULL(COLUMNPROPERTY(A.ID,A.NAME, 'SCALE '),0), 
 	允許空     = CASE WHEN A.ISNULLABLE=1 THEN  '√ 'ELSE  ' ' END, 
 	預設值     = ISNULL(E.TEXT, ' '), 
 	欄位說明   = ISNULL(G.[VALUE], ' ') 
 FROM  
 	SYSCOLUMNS A 
 LEFT JOIN  
 	SYSTYPES B  
 ON  
 	A.XUSERTYPE=B.XUSERTYPE 
 INNER JOIN  
 	SYSOBJECTS D  
 ON  
 	A.ID=D.ID  AND D.XTYPE= 'U ' AND  D.NAME <>  'DTPROPERTIES ' 
 LEFT JOIN  
 	SYSCOMMENTS E  
 ON  
 	A.CDEFAULT=E.ID 
 LEFT JOIN  
 	SYSPROPERTIES G  
 ON  
 	A.ID=G.ID AND A.COLID=G.SMALLID   
 LEFT JOIN  
 	SYSPROPERTIES F  
 ON  
 	D.ID=F.ID AND F.SMALLID=0 
 ORDER BY  
 	A.ID,A.COLORDER   
 --SQL2005的用下面的   
 SELECT  
 	表名       = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE  ' ' END, 
 	表說明     = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE, ' ') ELSE  ' ' END, 
 	欄位序號   = A.COLORDER, 
 	欄位名     = A.NAME, 
 	標識       = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ')=1 THEN  '√ 'ELSE  ' ' END, 
 	主鍵       = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= 'PK ' AND PARENT_OBJ=A.ID AND NAME IN ( 
 			SELECT NAME FROM SYSINDEXES WHERE INDID IN( 
 						SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN  '√ ' ELSE  ' ' END, 
 	類型       = B.NAME, 
 	佔用位元組數 = A.LENGTH, 
 	長度       = COLUMNPROPERTY(A.ID,A.NAME, 'PRECISION '), 
 	小數位數   = ISNULL(COLUMNPROPERTY(A.ID,A.NAME, 'SCALE '),0), 
 	允許空     = CASE WHEN A.ISNULLABLE=1 THEN  '√ 'ELSE  ' ' END, 
 	預設值     = ISNULL(E.TEXT, ' '), 
 	欄位說明   = ISNULL(G.[VALUE], ' ') 
 FROM  
 	SYSCOLUMNS A 
 LEFT JOIN  
 	SYSTYPES B  
 ON  
 	A.XUSERTYPE=B.XUSERTYPE 
 INNER JOIN  
 	SYSOBJECTS D  
 ON  
 	A.ID=D.ID  AND D.XTYPE= 'U ' AND  D.NAME <>  'DTPROPERTIES ' 
 LEFT JOIN  
 	SYSCOMMENTS E  
 ON  
 	A.CDEFAULT=E.ID 
 LEFT JOIN  
 	sys.extended_properties G  
 ON  
 	A.ID=G.major_id AND A.COLID=G.minor_id   
 LEFT JOIN  
 	sys.extended_properties F  
 ON  
 	D.ID=F.major_id AND F.minor_id=0 
 ORDER BY  
 	A.ID,A.COLORDER 
------解决方案--------------------楼上所言极是,SQL 2005的系统表和SQL 2000的系统表不同了,如果你的函数或存储过程中使用了这些系统表或存储过程,需要调整。