sql 执行动态语句

没看明白,可不可以描述清楚点哦

收获园豆:5

回复 | artwl | 专家六级 |园豆:16486 | 2011-09-01 09:10

exec (select  top 2 * from pubuser.pfs_userm
except 
select  top 1 * from pubuser.pfs_userm)的之為

id    name
1     張三
我現在取name的值

支持(0)反对(0)回复 | soarfe | 园豆:146 (初学一级) | 2011-09-01 09:45

@soarfe:

试试这个:

declare @sql nvarchar(4000)
begin
set @sql =‘
select top 2 pubuser.pfs_userm.Name from pubuser.pfs_userm
except
select top 1 pubuser.pfs_userm.Name from pubuser.pfs_userm ‘
exec (@sql)
end;

支持(0)反对(0)回复 | artwl | 园豆:16486 (专家六级) | 2011-09-01 10:05

我是這樣的

declare @sql nvarchar(4000)

declare @username nvarchar(20)

begin
set @sql =‘
select  top 2 pubuser.pfs_userm.Name from pubuser.pfs_userm
except 
select top 1 pubuser.pfs_userm.Name from pubuser.pfs_userm ‘
exec (@sql)

如何取exec (@sql) 結果賦值給 @username
end;

支持(0)反对(0)回复 | soarfe | 园豆:146 (初学一级) | 2011-09-01 10:17

declare @sql nvarchar(4000)
declare @username nvarchar(20)
begin
set @sql =‘select @username=Name from(
select top 2 pubuser.pfs_userm.Name from pubuser.pfs_userm
except
select top 1 pubuser.pfs_userm.Name from pubuser.pfs_userm) A ‘
exec sp_executesql @sql,N‘@username nvarchar(20) output‘,@username output
select @username
end;

支持(0)反对(0)回复 | artwl | 园豆:16486 (专家六级) | 2011-09-01 10:52

@天行健 自强不息:这个可以

支持(0)反对(0)

时间: 2024-08-29 19:11:27

sql 执行动态语句的相关文章

【转】Oracle 执行动态语句

1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理.通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式.

Java下拼接执行动态SQL语句(转)

在实际业务中经常需要拼接动态SQL来完成复杂数据计算,网上各类技术论坛都有讨论,比如下面这些问题: http://bbs.csdn.net/topics/390876591 http://bbs.csdn.net/topics/390981627 https://www.linkedin.com/groups/SQL-Query-Help-needed-137774.S.5948812806903119877?trk=groups_items_see_more-0-b-ttl http://bb

Java下拼接执行动态SQL语句

Java拼接动态SQL的一般做法有       1.使用动态语句 很多数据库都提供了处理动态SQL的语法,如Oracle的EXECUTE IMMEDIATE语句.MSSQL的EXEC和SP_EXECUTESQL.Mysql的预处理语句等.这些功能让我们在数据库端来处理动态查询提供了极大遍历,但这种方式只适用于相对简单地动态查询,复杂的情况经常会采用下面的方式. 2.使用存储过程 对于复杂的情况,一般会在存储过程中来拼接动态SQL.使用存储过程完成相对灵活,但编码复杂度过高,有时运行效率较低. 3

存储过程中执行动态Sql语句

存储过程中执行动态Sql语句 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能,还可以编写更安全的代码.EXEC在某些情况下会更灵活.除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql. 1.EXEC的使用 EXEC命令有两种用法,一种是执行一个存储

PL/SQL(五)PL/SQL中动态执行SQL语句

在PL/SQL程序开发中,可以使用DML语句和事务控制语句,但是还有很多语句(比如DDL语句)不能直接在PL/SQL中执行.这些语句可以使用动态SQL来实现. PL/SQL块先编译然后再执行,动态SQL语句在编译时不能确定,只有在程序执行时把SQL语句作为字符串的形式由动态SQL命令来执行.在编译阶段SQL语句作为字符串存在,程序不会对字符串中的内容进行编译,在运行阶段再对字符串中的SQL语句进行编译和执行,动态SQL的语法是: 语法格式:动态SQL EXECUTE IMMEDIATE 动态语句

使用Oracle的DBMS_SQL包执行动态SQL语句

使用Oracle的DBMS_SQL包执行动态SQL语句 引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 引用自:http://www.cnblogs.com/simonhaninmelbourne/archive/2013/01/23/2872438.html 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle的DBMS_SQL包可以用来执行动态SQL语句.本文通过一个简单的例子来展示如何利用D

FORM中执行动态sql语句

今天在 FORM BUILDER中用 execute immediate 'sql staments'执行动态sql时报错. 后查发现form中用forms_ddl函数执行动态sql,并且此函数暗含了commit: 详细介绍如下: 一.FORMS_DDL函数 FUNCTION FORMS_DDL(statement  VARCHAR2); 用于动态执行SQL语句与PL/SQL语句 注意事项: 1.参数statement的最大容量不能超过32K. 2.DDL类型的SQL语句,暗含一个commit命

动态语句SQL语句写法

/****************************************************************************************************************************************************** 动态语句语法:exec/sp_executesql语法 整理人:中国风(Roy) 日期:2008.06.06 *******************************************

sql 动态语句

如果动态语句有表变量 例子如下: declare @mS varchar(10) declare @mE varchar(10) declare @mSQL nvarchar(500) --SQL语句 set @mSQL=N' declare @mTable table(fcode varchar(10), fno varchar(10), fspec varchar(50)) insert into @mTable select top 100 code,no,spec from t300km