我已经给一个SQL Server数据库提供了一个用户帐户,该数据库只具有执行存储过程的权限。 我将JTDS SQL Server JDBC jar文件添加到SQL Developer,并将其添加为第三方JDBC驱动程序。 我可以成功login到SQL Server数据库。 我得到了运行该过程的这个语法: EXEC proc_name 'paramValue1' 'paramValue2' 当我作为一个语句或脚本运行这个,我得到这个错误: Error starting at line 1 in command: EXEC proc_name 'paramValue1' 'paramValue2' Error report: Incorrect syntax near the keyword 'BEGIN'. 我试着在BEGIN/END包装语句,但得到相同的错误。 是否有可能从SQL Developer调用过程? 如果是这样,我需要使用什么语法?
如何导致延迟执行指定的秒数? 这不是这样做的: WAITFOR DELAY '00:02'; 有人可以帮助我的格式?
我需要添加适当的索引到我的表,需要一些帮助。 我很困惑,需要澄清几点: 我应该使用索引非int列吗? 为什么/为什么不 我已经读了很多关于聚集索引和非聚集索引的知识,但是我仍然不能决定何时使用索引。 一个很好的例子会帮助我和其他许多开发者。 我知道我不应该使用经常更新的列或表的索引。 还有什么我应该注意的,我怎么能知道在进入testing阶段之前,这一切都很好?
我正在SQL Server 2008中编写一个用户定义的函数。我知道函数不能以通常的方式引发错误 – 如果尝试包含RAISERROR语句,则SQL返回: Msg 443, Level 16, State 14, Procedure …, Line … Invalid use of a side-effecting operator 'RAISERROR' within a function. 但事实是,函数需要一些input,这可能是无效的,如果是,则没有有意义的值,函数可以返回。 那我该怎么办? 当然,我可以返回NULL,但使用该函数的任何开发人员将很难对此进行故障排除。 我也可以通过零或类似的东西导致划分 – 这会产生一个错误信息,但是一个误导性的。 有什么办法可以让我自己的错误消息报告吗?
我试图用SQL Server 2008创build一个数据库diagramm,但是发生错误: 数据库图支持对象无法安装,因为此数据库没有有效的所有者。 要继续,请首先使用“数据库属性”对话框的“文件”页面或ALTER AUTHORIZATION语句将数据库所有者设置为有效login,然后添加数据库关系图支持对象。 然后我尝试了以下内容: EXEC sp_dbcmptlevel 'Ariha', '90'; GO ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator] GO USE Ariha GO EXECUTE AS USER = N'dbo' REVERT GO 下一个erorrpopup: 消息15404,级别16,状态11,行1无法获取有关Windows NT组/用户'WIN-NDKPHUPPNFL \ Administrator',错误代码0x534的信息。 问题是PC的名称已经改变为“DevPC”,我也在更新脚本中更改了这个,但仍然是错误15404。 我能做些什么来解决这个恼人的错误?
我已经看到类似的错误,但我没有find解决我的问题。 我有一个SQL查询,如: SELECT DISTINCT a.maxa , b.mahuyen , a.tenxa , b.tenhuyen , ISNULL(dkcd.tong, 0) AS tongdkcd FROM phuongxa a , quanhuyen b LEFT OUTER JOIN ( SELECT maxa , COUNT(*) AS tong FROM khaosat WHERE CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011' AND 'Sep 5 2011' GROUP BY maxa ) AS dkcd ON dkcd.maxa = […]
如何调用一个表中的每一行的存储过程,其中一行的列是input参数的SP 没有使用光标?
我遇到了一个奇怪的情况,追加OPTION (RECOMPILE)到我的查询导致它运行在半秒钟,而省略它导致查询花费超过五分钟。 查询分析器或从我的C#程序通过SqlCommand.ExecuteReader()执行查询时就是这种情况。 调用(或不调用) DBCC FREEPROCCACHE或DBCC dropcleanbuffers没有区别; 查询结果总是立即用OPTION (RECOMPILE)返回,并且在没有它的情况下大于五分钟。 查询总是用相同的参数调用[为了这个testing]。 我正在使用SQL Server 2008。 我对编写SQL相当舒服,但从未在查询中使用过OPTION命令,并且对计划caching的整个概念不熟悉,直到扫描此论坛上的post。 我从post的理解是OPTION (RECOMPILE)是一个昂贵的操作。 它显然为查询创build了一个新的查找策略。 那么为什么接下来的查询忽略了OPTION (RECOMPILE)这么慢呢? 后续查询不应该使用前一次调用时计算的查找策略,其中包括重新编译提示? 有一个查询需要每次调用重新编译提示是非常不寻常的吗? 对于入门级的问题抱歉,但我不能真正地使这个头或尾巴。 更新:我被要求发布查询… select acctNo,min(date) earliestDate from( select acctNo,tradeDate as date from datafeed_trans where feedid=@feedID and feedDate=@feedDate union select acctNo,feedDate as date from datafeed_money where feedid=@feedID and feedDate=@feedDate union select acctNo,feedDate as date from datafeed_jnl […]
我有一个MS SQL Server 2005数据库。 在几个过程中,我有表参数,我把它传递给一个存储过程作为一个nvarchar(用逗号分隔)和内部分为单个值。 我将它添加到SQL命令参数列表中,如下所示: cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo"; 我必须将数据库迁移到SQL Server 2008.我知道有表值参数,我知道如何在存储过程中使用它们。 但我不知道如何传递一个SQL命令中的参数列表。 有没有人知道正确的Parameters.Add程序语法? 还是有另一种方式来传递这个参数?
如何监视SQL Server数据库对表的更改而不使用触发器或以任何方式修改数据库的结构? 我的首选编程环境是.NET和C#。 我希望能够支持任何SQL Server 2000 SP4或更新版本。 我的应用程序是另一家公司产品的螺栓式数据可视化。 我们的客户群是数千人,所以我不希望在每次安装时都要求我们修改第三方供应商的表格。 通过“更改到表”我的意思是更改表数据,而不是更改表结构。 最终,我希望更改在我的应用程序中触发事件,而不必每隔一段时间检查一次更改。 根据我的要求(无触发器或架构修改,SQL Server 2000和2005),最好的方法似乎是在T-SQL中使用BINARY_CHECKSUM函数。 我打算实施的方式是这样的: 每X秒运行以下查询: SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK); 并将其与储值进行比较。 如果值已更改,请使用查询逐行浏览表: SELECT row_id, BINARY_CHECKSUM(*) FROM sample_table WITH (NOLOCK); 并比较返回的校验和与存储的值。