请教SQL语句的写法

mobilephone 2002-06-25 02:19:02
SQL SERVER 2000
例:
IF EXISTS ( SELECT * FROM tablename where condition1 like '%anyword%')
PRINT 'THIS IS THE RESULT.'
现在我的要求是这样的,我的SELECT语句是动态生成的,因为我的TABLENAME是时刻在变化的。我写了一个,但是不能运行。
DECLARE @STR VARCHAR(255)
SET @STR = ' SELECT * FROM tablename '
IF EXISTS EXEC ( @STR )
BEGIN
PRINT @STR
END
错误提示为:在关键字 'EXEC' 附近有语法错误。
怎么写?
...全文
28 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mobilephone 2002-06-25
  • 打赏
  • 举报
回复
谢谢大家帮助了,看来我的问题是不可能实现了。现在就给分。
newly_ignorant 2002-06-25
  • 打赏
  • 举报
回复
可以使用临时表来实现

declare @chvSql Nvarchar(100)
set @chvSql = N'select productid from mycontent'
--exec @chvsql
create table #t1(productid varchar(30))
insert into #t1 execute sp_executesql @chvsql
if exists (select productid from #t1)
select 'ha' 'ha'
drop table #t1
gzhughie 2002-06-25
  • 打赏
  • 举报
回复
不能动态与静态语句同时使用,你可改成下面的样子
DECLARE @STR VARCHAR(255)
SET @STR = ' SELECT * FROM tablename '

EXEC ( @STR )
IF @@ROWCOUNT>0
BEGIN
PRINT @STR
END
newly_ignorant 2002-06-25
  • 打赏
  • 举报
回复
DECLARE @STR NVARCHAR(255)
DECLARE @TABLENAME NVarchar(100)
set @tablename='yourtablename'
DECLARE @a INT
SET @STR = ' SELECT @b=count(*) FROM '+@tablename
exec sp_executesql @STR,N'@b int output',@b=@a output
IF @a>0
BEGIN
PRINT 'THIS IS THE RESULT.'
END
mobilephone 2002-06-25
  • 打赏
  • 举报
回复
@@rowcount的方法我现在正在用,不过有结果输出,毕竟我不是生成报表来用的。所以J9988的解决方法是个便通的方法,不过这不是我提问的本意。
OpenVMS的方法呢,是为了解决问题而解决问题。因为在我实际的应用中,不可能在条件中只有一个打印字符串,还有很多的其他操作,所以我觉得不适合我了。
请大家再帮帮我。
OpenVMS 2002-06-25
  • 打赏
  • 举报
回复
更正:
EXEC('IF EXISTS ('+@STR +')
BEGIN
PRINT '''+@STR+'''
END')
OpenVMS 2002-06-25
  • 打赏
  • 举报
回复
更正:
EXEC('IF EXISTS ('+@STR +')
BEGIN
PRINT '''+@STR+'''
END')
OpenVMS 2002-06-25
  • 打赏
  • 举报
回复
EXEC('IF EXISTS ('+@STR +')
BEGIN
PRINT '+@STR+'
END')
j9988 2002-06-25
  • 打赏
  • 举报
回复
DECLARE @STR NVARCHAR(255)
DECLARE @TABLENAME='tablename'
DECLARE @a INT
SET @STR = ' SELECT @b=count(*) FROM '+@tablename '
exec sp_executesql (@sql),N'@b int output',@b=@a output
IF @a>0
BEGIN
PRINT 'THIS IS THE RESULT.'
END
yhm66 2002-06-25
  • 打赏
  • 举报
回复
IF EXISTS 这里错了
条件没有写完

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧