如何执行数据库表中存在的Select语句

[复制链接]
查看11 | 回复4 | 2005-12-31 12:45:20 | 显示全部楼层 |阅读模式
CREATE PROCEDURE SiaMemberQuery
@SelectFields varchar(50),
@Operation varchar(10),
@Value varchar(50)
AS
declare@sql varchar(500),
@sql1 varchar(200),
@sql2 varchar(50),
@sql3 varchar(150)
set @sql1='Select SiaMember_Cent, SiaMember_OrgNo, SiaMember_Corp from SiaMember where '
if @SelectFields = '会员编号'
set @sql2='SiaMember_No '
else if @SelectFields='企业名称(中文)'
set @sql2='SiaMember_Cent '
else
set @sql2='SiaMember_UserName '
if @Operation='类似于'
set@sql3=' Like '+'''%'''+'+'+''''+ @Value +''''+'+'+'''%'''
else if @Operation='等于'
set@sql3=' ='+''''+@Value+''''
else
set@sql3=' >'+''''+@Value+''''
set @sql=@sql1+''+@sql2+''+@sql3
select SQL=@sql

我的问题是:
执行存储过程,SQL是一个select 语句,要怎样做,才能执行这个SQL语句,返回需要的结果记录(而不是这个Select语句)?
回复

使用道具 举报

千问 | 2005-12-31 12:45:20 | 显示全部楼层
去掉
select SQL=@sql
替换成
exec(@sql)
回复

使用道具 举报

千问 | 2005-12-31 12:45:20 | 显示全部楼层
使用sp_executesql
如EXEC sp_executesql @sql
最大varchar(5000)
回复

使用道具 举报

千问 | 2005-12-31 12:45:20 | 显示全部楼层
直接在存储过程中执行语句
Execute(@sql)
就可以了
回复

使用道具 举报

千问 | 2005-12-31 12:45:20 | 显示全部楼层
谢谢楼上的几位大侠!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行