sql2000中,这样的exec有replace怎么语法出错呀?怎么改进呀?
例子代码如下:declare @sql varchar(8000)
set @sql='select * from RE where id>10'
exec( REPLACE(@sql,'RE','sh_peishun') )
例子代码如下:declare @sql varchar(8000)
set @sql='select * from RE where id>10'
exec( REPLACE(@sql,'RE','sh_peishun') )
declare @sql varchar(8000)
set @sql='select * from RE where id>10'
set @sql=REPLACE(@sql,'RE','sh_peishun')
select @sql
/*
select * from sh_peishun whesh_peishun id>10
*/
--exec(@sql)这样明白了吧?
set @sql='select * from RE where id>10'
set @sql=REPLACE(@sql,' RE ',' sh_peishun ')
select @sql
/*
select * from sh_peishun where id>10
*/
--exec(@sql)
--这样修改吧
declare @sql varchar(8000)
set @sql='select * from [RE] where id>10'
exec( REPLACE(@sql,'[RE]','[sh_peishun]') )
如果像你这样的话 set @sql=REPLACE(@sql,'RE','sh_peishun'),会超过了8000字符了的.exec()中不可以放有replace函数吗?
declare @sql varchar(8000)
set @sql='select * from R9 where id>10'
exec( REPLACE(@sql,'R9','sh_peisdfdfsdsdsdfsdssssfksdkflsdflsjdfsdfsdfsdfsfssssssshun') )
set @sql='select * from RE'
set @sql = REPLACE(@sql,'RE','dbo.book')
exec(@sql)
--EXEC接受一个常量或变量,加函数不行
exec(replace('select ''aaa''','a','b'))测试一下就知道了,不行