胡百敬: 迁移过程中发现了很多问题,致使迁移任务不能顺利的完成。2000和2005还是有很多不同之处的。 1.在2000的用户自定义函数中,不能使用“非确定性的函数”,比如getdate()。 解决方案,可以在函数调用之初,就将getdate()作为参数传过去。 2.系统对象的前缀有所不同。2000的前缀是dbo;而2005的前缀是sys。 3.2000存储过程调用函数参数传递时必须传直接变量或常量。所以不能使用getdate(),或case when 之类的语句。解决方案, 可以在函数调用之初,将getdate()/case when 的值赋值给一个变量,再传过去。 4.select top x语句,x不能为变量,且x不能加括号。 5.insert into exec (@param1)语法再2000中不能编译通过,应改exec ('insert into'+@param1)
sql server 2005迁移至sqlserver2000 迁移过程中发现了很多问题,致使迁移任务不能顺利的完成。2000和2005还是有很多不同之处的。 1.在2000的用户自定义函数中,不能使用“非确定性的函数”,比如getdate()。 解决方案,可以在函数调用之初,就将getdate()作为参数传过去。 2.系统对象的前缀有所不同。2000的前缀是dbo;而2005的前缀是sys。 3.2000存储过程调用函数参数传递时必须传直接变量或常量。所以不能使用getdate(),或case when 之类的语句。解决方案, 可以在函数调用之初,将getdate()/case when 的值赋值给一个变量,再传过去。 4.select top x语句,x不能为变量,且x不能加括号。 5.insert into exec (@param1)语法再2000中不能编译通过,应改exec ('insert into'+@param1)
1.在2000的用户自定义函数中,不能使用“非确定性的函数”,比如getdate()。
解决方案,可以在函数调用之初,就将getdate()作为参数传过去。
2.系统对象的前缀有所不同。2000的前缀是dbo;而2005的前缀是sys。
3.2000存储过程调用函数参数传递时必须传直接变量或常量。所以不能使用getdate(),或case when 之类的语句。解决方案, 可以在函数调用之初,将getdate()/case when 的值赋值给一个变量,再传过去。
4.select top x语句,x不能为变量,且x不能加括号。
5.insert into exec (@param1)语法再2000中不能编译通过,应改exec ('insert into'+@param1)
1.在2000的用户自定义函数中,不能使用“非确定性的函数”,比如getdate()。
解决方案,可以在函数调用之初,就将getdate()作为参数传过去。
2.系统对象的前缀有所不同。2000的前缀是dbo;而2005的前缀是sys。
3.2000存储过程调用函数参数传递时必须传直接变量或常量。所以不能使用getdate(),或case when 之类的语句。解决方案, 可以在函数调用之初,将getdate()/case when 的值赋值给一个变量,再传过去。
4.select top x语句,x不能为变量,且x不能加括号。
5.insert into exec (@param1)语法再2000中不能编译通过,应改exec ('insert into'+@param1)