相关疑难解决方法(0)

如何列出引用SQL Server中给定表的所有外键?

我需要删除SQL Server数据库中高度引用的表.如何获取我需要删除的所有外键约束的列表以便删除表?

(在管理工作室的GUI中,SQL答案比点击更好.)

sql t-sql sql-server

692
推荐指数
18
解决办法
58万
查看次数

140
推荐指数
4
解决办法
26万
查看次数

检索存储过程的列名和类型?

可能重复:
检索存储过程结果集的列定义

我使用以下SQL来获取表或视图的列名和类型:

DECLARE @viewname varchar (250);

select a.name as colname,b.name as typename 
from syscolumns a, systypes b -- GAH!
where a.id = object_id(@viewname) 
and a.xtype=b.xtype 
and b.name <> 'sysname'
Run Code Online (Sandbox Code Playgroud)

如何为存储过程的输出列执行类似的操作?

sql sql-server

39
推荐指数
1
解决办法
7万
查看次数

如何从没有临时表的另一个存储过程调用存储过程(带参数)

我有存储过程A并希望通过传递@mydate参数从A调用存储过程B. 存储过程B将返回一个行集,我可以在程序A中进一步使用.

我在Google上研究了这个,但没有使用临时表就找不到任何东西.有一个简单的方法来获得这个没有临时表.

PS:我试图使用存储过程作为A和一个函数作为B轻松完成此操作.但是想知道我是否只能通过使用存储过程来完成它.

stored-procedures sql-server-2008

22
推荐指数
3
解决办法
11万
查看次数

从存储过程插入临时表,该存储过程返回多个结果集

考虑以下sql

一个名为myProc的存储过程,它返回两个结果集.结果集1返回column1,column2.结果集2返回第3列第4列第5列.

以下sql将失败,因为临时表仅定义了2个int列.

Create Table #temp1(
Column1 int,
Column2 int)

insert into #temp1 exec myProc
Run Code Online (Sandbox Code Playgroud)

我的问题是是否可以将第一个结果集插入#temp1?

sql t-sql stored-procedures sql-server-2005

11
推荐指数
1
解决办法
2万
查看次数

我可以搜索存储过程结果吗?

假设我有一个存储过程,它返回一大组数据.我可以编写另一个查询来过滤存储过程的结果吗?

例如:

select * from
EXEC xp_readerrorlog
where LogDate = '2011-02-15'
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures sql-server-2005

10
推荐指数
1
解决办法
8333
查看次数

您可以在T-SQL中选择存储过程的结果吗?

select * from (EXEC sp_SomeStoredProc)
Run Code Online (Sandbox Code Playgroud)

如果你不能这样做那么什么阻止它被添加到SQL标准或T-SQL?

sql stored-procedures sql-server-2005

5
推荐指数
1
解决办法
7323
查看次数

是否有一种简洁的方法来检索使用T-SQL的表列名列表?

当我在寻找一个SQL Server数据库时,我经常想要以交互方式检索数据库表的简单列名列表(没有数据类型信息等,只有名称)sqlcmd.

我可以做这个:

EXEC sp_columns @table_name = 'tablename'
Run Code Online (Sandbox Code Playgroud)

这给了我比我想要的更多的东西,并在命令提示符中包含它接近无法理解的程度,或者我可以这样做:

SELECT col.name 
FROM sysobjects obj 
INNER JOIN syscolumns col
ON obj.id = col.id where obj.name = 'tablename'
Run Code Online (Sandbox Code Playgroud)

这给了我想要的东西,但有点冗长.

我希望能够做到这样的事情:

SELECT column_name
FROM (EXEC sp_columns @table_name = 'tablename')
Run Code Online (Sandbox Code Playgroud)

但这不起作用(例如,参见这个问题).

有没有更简洁的方法来做到这一点(即更容易在命令行输入,因此更不容易出错)?

t-sql sql-server

5
推荐指数
1
解决办法
5396
查看次数