文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>SQL动态查询

SQL动态查询

时间:2010-09-20  来源:greg_echo

    今天做了一个根据动态生成表明来查询相关结果的存储过程,由于表名是动态生成,因此使用了SQL Server的动态查询,函数sp_executesql。写篇博客已记录开发过程中遇到的问题,以备查询。

需要统计的表是根据规则动态生成,格式如下:

 

因此在这里考虑使用SQL提供的sp_executesql 函数,它可以执行动态的修改,查询,删除功能。该函数官方详细文档,如下:

Sp_executesql:执行可以多次重复使用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。

语法 :

sp_executesql [ @statement = ] statement

[

    { , [ @params = ] N'@parameter_name data_type [ OUT | OUTPUT ][ ,...n ]' }

    { , [ @param1 = ] 'value1' [ ,...n ] }

]

官方详细文档:http://technet.microsoft.com/zh-cn/library/ms188001.aspx

完成任务:

在不确定表名的情况下,根据生成表名规则及查询条件,返回统计结果:

要求函数返回值类型为int,取对应字段的值返回

做法如下:

declare @AllCount int

declare @exesql nvarchar(1000);

 

--动态查询

set @exesql='select @temp = count(*) from [dbo].['+ @tableName +'] where ID='''+@ID +''''

 

exec sp_executesql @exesql,N'@temp int output', @AllCount output

 

select @AllCount;

结果:

将统计结果输出到变量@AllCount中。

提醒:

对于动态表名及字段使用非常简单,但获取结果使用动态语句是有一定规则的,如上面的列子,需要把表名声明成Nvarchar的,然后执行动态语句时,声明其动态语句中变量前也要加N ,如N'@a

Output:指示该参数为输出参数。

以上的相关内容就是对SQL server 动态查询的介绍。

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载