首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条查询语句,很简单的。60分,该如何解决

2012-01-19 
求一条查询语句,很简单的。60分如题,就是求一个可以通用的关于select的查询的存储过程。就是说不论对什么表,

求一条查询语句,很简单的。60分
如题,就是求一个可以通用的关于   select   的查询的存储过程。就是说   不论对什么表,或者字段   行   查询都可以使用一个存储过程。

[解决办法]
create procedure [dbo].[Pro_Select](
@cells varchar(1000)= '* ',
@tables varchar(1000),
@top int = -1,
@condition varchar(2000)= ' ',
@orderby varchar(200)=NULL
)
as

set nocount on
declare @rowcount int;
declare @SQL nvarchar(4000);

if(@top = -1)
set @SQL = N 'select ' + @cells + ' from ' + @tables + ' where 1=1 ' + @condition;
else
set @SQL = N 'select top ' + cast(@top as nvarchar(10)) + ' ' + @cells + ' from ' + @tables + ' where 1=1 ' + @condition;
if(@orderby is not NULL)
set @SQL = @SQL + N ' order by ' + @orderby;

exec (@SQL)

set nocount off

[解决办法]
CREATE PROCEDURE dbo.Query_Tab
@table nvarchar(1000),
@field nvarchar(1000)
AS
begin
declare @sql nvarchar(4000)
if @field <> ' '
begin
set @sql= 'select ' +@field + ' from ' +@table
end
else
begin
set @sql= 'select * from ' +@table
end
exec (@sql)
end
GO


热点排行