如何得到动态语句的结果集? 我在一个自定义函数中用到了动态语句,现在需要用到其结果集,要从其结果集里面再查询数据。游标?临时表?还是其它? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在一个自定义函数中用到了动态语句函数中无法使用exec的。 SELECT * FROM DBO.函數() WHEER 條件 可以用表值函数啊。SELECT * FROM DBO.函數() --不在函数中该如何写啊?--假如:DECLARE @SQL NVARCHAR(4000)DECLARE @COL NVARCHAR(50)SET @COL='XXX'SET @SQL='SELECT * FROM TB WHERE COL1=' + @COLEXEC(@SQL)--我要从上面的EXEC(@SQL)结果集里面查询第一条数据,该怎么写? SET @SQL='SELECT * FROM TB WHERE COL1=' + @COL--改为:SET @SQL='SELECT top 1 * FROM TB WHERE COL1=' + @COL SELECT TOP 1 * FROM TB WHERE COL1= @COL 怪我前面没有问清楚问题。重新问:DECLARE @SQL NVARCHAR(4000)DECLARE @TBName NVARCHAR(50)DECLARE @COL1Name NVARCHAR(50)DECLARE @COL2Name NVARCHAR(50)DECLARE @COL2Value NVARCHAR(50)SET @TBName='OrgCompany'SET @COL1Name='OrgID'SET @COL2Name='CompanyNo'SET @COL2Value='1'SET @SQL='SELECT TOP 1 ' + @COL1Name + ' FROM ' + @TBName + ' WHERE ' + @COL2Name +' = ' + @COL2ValueEXEC(@SQL)--OrgID------------------------------------------------------1----(1 個資料列受到影響)我要把上面的这个结果(即:1)赋给一个变量@T,该如何操作? 使用SP_EXECUTESQL 的参数输出方法获取. declare @s nvarchar(1000)declare @name nvarchar(40)set @s = N'select top 1 @name = name from sysobjects'exec sp_executesql @s,N'@name nvarchar(40) output',@name outputselect @name举个例子如上 declare @s varchar(1000)declare @i intset @s = N'select @i = count(1) from ta'sp_executesql @s,'@i int out',@i outselect @i 如果表带有自增长字段,如何把自增长字段也复制到另外一个表? 菜鸟送分了 SQL一个关于重复数据的问题 午休时间求一SQL语句 请问:如何提取到表里面重复最多的值? 关于表和存储过程的权限设置问题 数据库连接问题,急! 怎样处理数据库,才能在企业管理器及查询分析器中不能直接看到数据库结构 sql语句实现还原问题??? 优化SQL语句:根据时间字段取最新纪录,能否进一步优化? 有关单表数据处理问题。急求答案!~~谢谢 大家换行是怎么超作的。。 同时装sql2000与2005后连接怎么写
--假如:
DECLARE @SQL NVARCHAR(4000)
DECLARE @COL NVARCHAR(50)
SET @COL='XXX'
SET @SQL='SELECT * FROM TB WHERE COL1=' + @COL
EXEC(@SQL)
--我要从上面的EXEC(@SQL)结果集里面查询第一条数据,该怎么写?
SET @SQL='SELECT * FROM TB WHERE COL1=' + @COL
--改为:
SET @SQL='SELECT top 1 * FROM TB WHERE COL1=' + @COL
DECLARE @SQL NVARCHAR(4000)
DECLARE @TBName NVARCHAR(50)
DECLARE @COL1Name NVARCHAR(50)
DECLARE @COL2Name NVARCHAR(50)
DECLARE @COL2Value NVARCHAR(50)
SET @TBName='OrgCompany'
SET @COL1Name='OrgID'
SET @COL2Name='CompanyNo'
SET @COL2Value='1'
SET @SQL='SELECT TOP 1 ' + @COL1Name + ' FROM ' + @TBName + ' WHERE ' + @COL2Name +' = ' + @COL2Value
EXEC(@SQL)
--OrgID
----------------------------------------------------
--1
--
--(1 個資料列受到影響)
我要把上面的这个结果(即:1)赋给一个变量@T,该如何操作?
declare @s nvarchar(1000)
declare @name nvarchar(40)
set @s = N'select top 1 @name = name from sysobjects'exec sp_executesql @s,N'@name nvarchar(40) output',@name outputselect @name举个例子如上
declare @i intset @s = N'select @i = count(1) from ta'sp_executesql @s,'@i int out',@i outselect @i