有沒有辦法在存儲過程中將一個系統存儲過程的結果塞到一個表中?

风里有梦 2006-07-25 05:29:52
如題!請大俠指教! 小弟先謝過了!
...全文
248 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
风里有梦 2006-07-28
  • 打赏
  • 举报
回复
明白了!!! 知道問題了! 多謝 "一天到晚游泳的鱼" 和 "快樂至上" :

Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec dbo.sp_columns ''tblAsset''')
Select * From #T
Drop Table #T

我那天測試時,把數據庫名稱刪了, 因為我是在當前的PMFE中執行的,以為可以不指定, 結果...

正确的是:

Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec PMFE.dbo.sp_columns ''tblAsset''')
Select * From #T
Drop Table #T
paoluo 2006-07-28
  • 打赏
  • 举报
回复
對,忘記提醒這個,記得將Test換成你自己的數據庫名。
lzhs 2006-07-28
  • 打赏
  • 举报
回复
1、确认你的数据库里有tblAsset这个表
2、OpenRowSet中'exec Test.dbo.sp_columns ''tblAsset''',将Test换成tblAsset表所在数据库的名字。
paoluo 2006-07-27
  • 打赏
  • 举报
回复
你確定你的表名沒有錯誤??


Create Table tblAsset(ID Int,Name Varchar(10))
GO
Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec Test.dbo.sp_columns ''tblAsset''')
Select * From #T
Drop Table #T
GO
Drop Table tblAsset
--Result
/*
Test dbo tblAsset ID 4 int 10 4 0 10 1 NULL NULL 4 NULL NULL 1 YES 38
Test dbo tblAsset Name 12 varchar 10 10 NULL NULL 1 NULL NULL 12 NULL 10 2 YES 39
*/
db_sky 2006-07-27
  • 打赏
  • 举报
回复
To:lzhs(快乐至上)
...
Insert Into #Temp Exec sp_...
原理和
Insert Into #Temp Select * From Table2
一样的~~~~
可以把Exec sp_...执行的结果当作和Select一样的返回一个结果集。
----------------------------------------------------------------
insert into #表 exec sp_executesql proc_abc
而不能
select * exec sp_executesql proc_abc

select * into #表 exec sp_executesql proc_abc

==================================
= CSDN助手 全面支持CSDN论坛 =
= 监视、收藏、历史、签名走马灯 =
==================================
风里有梦 2006-07-27
  • 打赏
  • 举报
回复
懷疑是SQL的語句解析器不能將''轉換成',所以就對于帶參數的系統存儲過程無法處理了...
风里有梦 2006-07-27
  • 打赏
  • 举报
回复
exec dbo.sp_columns 'tblAsset'

tblAsset是我當前數據庫中的一個表,神你要測試須將tblAsset替換成您的數據庫中的一個表
LouisXIV 2006-07-27
  • 打赏
  • 举报
回复
將不會返回一行記錄. :(

--------------------------------------------
Do you confirm that you've give a correct value to the parameter of SP?

In this situation

'exec Test.dbo.sp_columns ''tblAsset'''

the position of "tblAsset" should be a existed tablename other than a column name
风里有梦 2006-07-27
  • 打赏
  • 举报
回复
結果不會出錯,但是,結果卻不是正确的. 應該是''的問題:

原SQL STATEMENT: exec Test.dbo.sp_columns 'tblAsset'

這個系統存儲過程是返回指定參數的所有列. 但是:

Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec Test.dbo.sp_columns ''tblAsset''')
Select * From #T
Drop Table #T

將不會返回一行記錄. :(

paoluo 2006-07-27
  • 打赏
  • 举报
回复
baofeng(人生如夢) ( ) 信誉:100 2006-07-27 16:12:00 得分: 0


多謝大家熱心指點. 魚你這個方法不錯不用建立臨時表, 但是看下面這條:

Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec Test.dbo.sp_columns ''tblAsset''')
Select * From #T
Drop Table #T

為什麼這條不行?


-------------------
我測試沒有問題啊。
LouisXIV 2006-07-27
  • 打赏
  • 举报
回复
What's wrong?
风里有梦 2006-07-27
  • 打赏
  • 举报
回复
多謝大家熱心指點. 魚你這個方法不錯不用建立臨時表, 但是看下面這條:

Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec Test.dbo.sp_columns ''tblAsset''')
Select * From #T
Drop Table #T

為什麼這條不行?
lzhs 2006-07-25
  • 打赏
  • 举报
回复
鱼,你说的不错!
paoluo 2006-07-25
  • 打赏
  • 举报
回复
使用這個可以不用提前建立臨時表



Select * Into #T From OpenRowSet('sqloledb','Trusted_Connection=yes','exec Test.dbo.sp_who')
Select * From #T
Drop Table #T
lzhs 2006-07-25
  • 打赏
  • 举报
回复
原理和
Insert Into #Temp
Select * From Table2
一样的~~~~

可以把Exec sp_...执行的结果当作和Select一样的返回一个结果集。
lzhs 2006-07-25
  • 打赏
  • 举报
回复
可以的。
首先按照这个存储过程执行的结果的列来建一张表,然后用这个
Insert Into #Temp
Exec sp_...
billpu 2006-07-25
  • 打赏
  • 举报
回复
要看返回什么了 比如sp_who返回8个列 你就必须按字段insert
内容概要:本文介绍了一种基于双向DC-DC变换器的储能电池SOC(State of Charge,荷电状态)充放电双模式Simulink仿真模型,旨在实现对储能系统在充电和放电两种工况下的精确建模与动态控制。仿真系统结合了电力电子变换器的拓扑结构与电池等效电路模型,通过闭环控制策略实时调节充放电电流,确保电池工作在安全高效的SOC区间内。模型充分考虑了能量双向流动特性,支持能量回馈与吸收,适用于微电网、电动汽车及可再生能源系统中的能量管理场景。通过仿真可验证控制算法的有效性,优化系统动态响应与能量利用效率。; 适合人群:具备电力电子、自动控制及新能源系统基础知识,从事电气工程、自动化、能源系统等相关领域的科研人员与工程技术人员,尤其适合研究生及从事储能系统仿真与控制开发的工程师。; 使用场景及目标:①研究储能系统在微电网中的能量调度与平抑功率波动能力;②验证双向DC-DC变换器在电池充放电切换过程中的稳定性与效率;③优化基于SOC反馈的充放电控制策略,防止过充过放,延长电池寿命;④为实际储能系统控制器设计提供仿真验证平台。; 阅读建议:建议结合Simulink模型文件与控制算法说明文档同步学习,重点关注变换器控制逻辑、SOC估算模块与充放电模式切换机制,可通过调整参数进行对比仿真,深入理解系统动态特性与控制性能。
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 在Microsoft的视窗系统中,有时我们需要确认文件的完整性与一致性,这时MD5校验和显得十分关键。MD5(Message-Digest Algorithm 5)是一种被广泛应用的哈希函数,它能够将文件数据转化为固定长度的数字性摘要,一般表现为32位的16进制数值。该种摘要对于文件内容具有独特性,即便文件内容有微小的改动,MD5数值也会发生显著变化。接下来将具体阐述在Microsoft视窗的命令行环境中如何运用`md5sum`软件来计算文件的MD5数值。1. **MD5的本质及其应用** MD5是一种哈希技术,主要应用于数据完整性验证,例如在下载文件后核实其与原始文件是否一致,或在密码存储时进行单向加密处理。尽管MD5的防护能力已无法满足高安全级别的需求,但在文件完整性验证方面仍然被广泛采用。2. **Microsoft视窗中的`md5sum`软件** 在Linux系统中,`md5sum`命令是系统自带的,而在Microsoft视窗系统中则需要额外进行安装。用户可以下载适用于Microsoft视窗的`md5sum`软件,比如GnuWin32项目提供的版本。安装完成后,`md5sum.exe`会被添加至系统的PATH环境变量中,从而可以在命令行界面中直接使用。3. **`md5sum`软件的使用方法** 在命令行提示符(通过按Win + R键,输入`cmd`后按下回车键)中,输入下列格式的指令来计算文件的MD5数值: ``` md5sum 文件路径 ``` 举例来说,若要计算名为`example.txt`的文件的MD5数值,指令应为: ``` md5sum example...

22,297

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧