标签: sql-server

以编程方式检索与SQL Server Management Studio gui返回的源相同的SQL Server存储过程源?

有关如何以编程方式从SQL Server 2005获取完全相同的存储过程源的任何指针,就像我在SQL Server Management Studio中右键单击该存储过程并选择修改一样?

我正在尝试使用SMO,但存在一些文本差异.该过程始终具有CREATE,而不是ALTER,并且标头中存在一些差异,例如在我以编程方式获取的版本中缺少GO.我可以解决这些问题,但也许还有更好的方法吗?

我再次使用SMSE在SQL Server 2005中.通过Visual Studio 8 2008使用SMO.

更新:得到一些答案,告诉我们如何检索存储过程的基础知识.我正在寻找的是检索与GUI生成的文本相同(或几乎相同)的文本.

示例:对于sp_mysp,在Management Studio中单击鼠标右键,选择"修改".这会产生:

    USE [MY_DB]  
    GO  
    /****** Object:  StoredProcedure [dbo].[sp_mysp]    Script Date: 01/21/2009 17:43:18 ******/  
    SET ANSI_NULLS ON  
    GO  
    SET QUOTED_IDENTIFIER ON  
    GO  
    -- =============================================
    -- Author:      
    -- Create date: 
    -- Description: 
    -- =============================================
    ALTER PROCEDURE [dbo].[sp_mysp]

我想以编程方式获得相同的东西(注意标题中的GO,以及它是一个更改程序的事实.理想情况下,我希望通过最小程序修复所检索的源来实现此目的.

我很乐意在Script Date细节中得到不同的东西...

sql-server stored-procedures smo

64
推荐指数
5
解决办法
10万
查看次数

我的SQL Server 2008中的SQL事件探查器在哪里?

我下载了SQL Server 2008,似乎无法在任何地方找到SQL Profiler.

我相信我安装了SQL Server Enterprise Express /试用版?

我想这毕竟是Express而不是Enterprise?

sql-server profiling sql-server-profiler

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

.Net vs SSIS:SSIS应该用于什么?

如果我可以选择使用.Net并且可以在.Net中进行数据转换,我何时需要SSIS?是否有一项SSIS会更好的任务?透明度的额外好处值得吗?这是我更舒服的吗?确定这个的最佳做法是什么?

.net sql-server ssis

64
推荐指数
4
解决办法
2万
查看次数

使用select为查询结果添加行

是否可以使用这样的文字扩展查询结果?

select name from users
union
select name from ('JASON');
Run Code Online (Sandbox Code Playgroud)

要么

select age, name from users
union
select age, name from (25,'Betty');
Run Code Online (Sandbox Code Playgroud)

所以它返回表中的所有名称加'JASON'或(25,'Betty').

sql t-sql sql-server select insert

64
推荐指数
3
解决办法
12万
查看次数

SQL案例表达式语法?

SQL Case表达式的完整和正确语法是什么?

sql sql-server oracle syntax case

63
推荐指数
4
解决办法
15万
查看次数

版本控制我的SQL Server存储过程的最佳方法是什么?

版本控制数据库对象的最佳方法是什么?我正在使用Visual Studio 2005/2008和SQL server 2005.我更喜欢可以与SVN一起使用的解决方案.

svn sql-server version-control stored-procedures visual-studio

63
推荐指数
4
解决办法
3万
查看次数

SQL Server中的参数嗅探(或欺骗)

不久之前,我有一个查询,我为我的一个用户运行了很多.它仍然在进化和调整,但最终它稳定并且运行得非常快,所以我们从中创建了一个存储过程.

到目前为止,这是正常的.

但是,存储过程很慢.查询和proc之间没有实质性差异,但速度变化很大.

[后台,我们正在运行SQL Server 2005.]

友好的本地DBA(不再在这里工作)看了一下存储过程并说"参数欺骗!" (编辑:虽然它似乎也可能被称为'参数嗅探',这可能解释了当我试图搜索它时谷歌的点击率很低.)

我们将一些存储过程抽象到第二个存储过程,将对这个新内部过程的调用包装到预先存在的外部过程中,称为外层过程,嘿,它与原始查询一样快.

那么,是什么给出的?有人可以解释参数欺骗吗?

奖金积分

  • 强调如何避免它
  • 建议如何识别可能的原因
  • 讨论替代策略,例如统计数据,指数,关键,以减轻这种情况

t-sql sql-server sql-server-2005 parameter-spoofing

63
推荐指数
5
解决办法
3万
查看次数

如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中

我将选择列表中的列添加到按顺序列表中,但它仍然给出了错误:

如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中.

这是存储过程:

CREATE PROCEDURE [dbo].[GetRadioServiceCodesINGroup] 
@RadioServiceGroup nvarchar(1000) = NULL
AS
BEGIN
SET NOCOUNT ON;

SELECT DISTINCT rsc.RadioServiceCodeId,
                rsc.RadioServiceCode + ' - ' + rsc.RadioService as RadioService
FROM sbi_l_radioservicecodes rsc
INNER JOIN sbi_l_radioservicecodegroups rscg 
ON rsc.radioservicecodeid = rscg.radioservicecodeid
WHERE rscg.radioservicegroupid IN 
(select val from dbo.fnParseArray(@RadioServiceGroup,','))
OR @RadioServiceGroup IS NULL  
ORDER BY rsc.RadioServiceCode,rsc.RadioServiceCodeId,rsc.RadioService

END
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

63
推荐指数
4
解决办法
15万
查看次数

将Excel电子表格列导入SQL Server数据库

我有一个Excel电子表格,我想将选择列导入我的SQL Server 2008数据库表.该向导没有提供该选项.

是否存在任何简单的代码选项?

sql-server import excel etl sql-server-2008

63
推荐指数
5
解决办法
40万
查看次数

如何将SQL Server 2005查询导出为CSV

我想将一些SQL Server 2005数据导出为CSV格式(用逗号分隔引号).我可以想到很多复杂的方法,但我想以正确的方式做到这一点.我看过bcp,但我无法弄清楚如何在字段周围添加引号(除了将它们连接到字段值,这很难看).我想我可以用sqlcmd和-o做到这一点,但出于同样的原因,这似乎很难看.

有没有bcp方式来做到这一点?

有合理的sqlcmd方法吗?

管理工作室内置了一些非常简单的实用工具吗?

sql-server bcp sql-server-2005 sqlcmd

63
推荐指数
7
解决办法
19万
查看次数