日期:2014-05-19  浏览次数:20486 次

replace不能用于变量吗?
我想实现把一个varchar变量里的一个字符串替换为另一个字符串,   这样写不行:
declare   @sql   varchar
set   @sql   =   'SELECT   *   FROM   $table$ '
set   @sql   =   REPLACE(@sql, '$table$ ', 'news ')  
print   @sql

奇怪的是,   这样写就可以
print   replace( 'SELECT   *   FROM   $table$ ', '$table$ ', 'news ')  

为什么?
我要实现在变量里使用REPLACE进行替换,   应该怎么做?

------解决方案--------------------
楼主的@sql的长度好象有问题哟

declare @sql varchar(300)
declare @p varchar(20)
DECLARE @I VARCHAR(30)
SET @I= '$table$ '
set @P= 'news '
set @sql = 'SELECT * FROM $table$ '
set @sql = REPLACE(@sql,@I,@P)
print @sql
这样也可以呀
------解决方案--------------------
declare @sql varchar(8000) -- 數組
set @sql = 'SELECT * FROM $table$ '
set @sql = REPLACE(@sql, '$table$ ', 'news ')
print @sql