我有一个我试图测试的存储过程.我试图通过SQL Management Studio测试它.为了运行这个测试,我输入...
exec my_stored_procedure 'param1Value', 'param2Value'
Run Code Online (Sandbox Code Playgroud)
最后一个参数是output parameter
.但是,我不知道如何使用输出参数测试存储过程.
如何使用输出参数运行存储过程?
我有一个会改变的链接服务器.有些程序会像这样调用链接服务器:[10.10.100.50].dbo.SPROCEDURE_EXAMPLE
.我们也有触发器做这种工作.我们需要找到[10.10.100.50]
用于改变它的所有地方.
在SQL Server Management Studio Express中,我没有在Visual Studio中找到类似"在整个数据库中查找"的功能.一个特殊的系统选择可以帮助我找到我需要的东西吗?
我需要检查上次功能何时更改.我知道如何检查创建日期(它位于SQL Server Management Studio的函数属性窗口中).
我发现在SQL Server 2000中无法检查修改日期(请看这篇文章:是否可以确定SQL Server 2000中最后一次修改存储过程的时间?)
是否可以在SQL Server 2008中进行检查?MS是否在系统表中添加了一些允许检查它的新功能?
stored-procedures sql-function sql-server-2008 sql-server-2008-r2
我有一个MS SQL Server 2005数据库.在一些过程中,我将表参数作为nvarchar(以逗号分隔)传递给存储过程,并在内部划分为单个值.我将它添加到SQL命令参数列表中,如下所示:
cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo";
Run Code Online (Sandbox Code Playgroud)
我必须将数据库迁移到SQL Server 2008.我知道有表值参数,我知道如何在存储过程中使用它们.但我不知道如何将一个传递给SQL命令中的参数列表.有谁知道Parameters.Add
程序的正确语法?或者是否有另一种传递此参数的方法?
c# sql-server stored-procedures sqlcommand table-valued-parameters
我在看MySQL存储过程和函数.真正的区别是什么?
它们似乎相似,但功能有更多限制.
我可能错了,但似乎存储过程可以做所有事情,而存储功能可以做得更多.为什么/何时使用程序与函数?
如何为表中的每一行调用存储过程,其中行的列是sp的输入参数而不使用Cursor?
是否有一种优雅的方法来处理将id列表作为参数传递给存储过程?
例如,我希望我的存储过程返回的部门1,2,5,7,20.在过去,我已经通过逗号分隔的id列表,如下面的代码,但感觉真的很脏.
我认为SQL Server 2005是我唯一适用的限制.
create procedure getDepartments
@DepartmentIds varchar(max)
as
declare @Sql varchar(max)
select @Sql = 'select [Name] from Department where DepartmentId in (' + @DepartmentIds + ')'
exec(@Sql)
Run Code Online (Sandbox Code Playgroud) MySql上的错误消息:
Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
Run Code Online (Sandbox Code Playgroud)
我已经经历了其他几个帖子,但无法解决这个问题.受影响的部分与此类似:
CREATE TABLE users (
userID INT UNSIGNED NOT NULL AUTO_INCREMENT,
firstName VARCHAR(24) NOT NULL,
lastName VARCHAR(24) NOT NULL,
username VARCHAR(24) NOT NULL,
password VARCHAR(40) NOT NULL,
PRIMARY KEY (userid)
) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE TABLE products (
productID INT UNSIGNED NOT NULL AUTO_INCREMENT,
title VARCHAR(104) NOT NULL,
picturePath VARCHAR(104) NULL,
pictureThumb VARCHAR(104) NULL,
creationDate DATE NOT NULL,
closeDate DATE NULL,
deleteDate DATE NULL, …
Run Code Online (Sandbox Code Playgroud) 我已经获得了一个只有执行存储过程权限的SQL Server数据库的用户帐户.我将JTDS SQL Server JDBC jar文件添加到SQL Developer并将其添加为第三方JDBC驱动程序.我可以成功登录到SQL Server数据库.我得到了运行该过程的语法:
EXEC proc_name 'paramValue1' 'paramValue2'
Run Code Online (Sandbox Code Playgroud)
当我将其作为语句或脚本运行时,我收到此错误:
Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Run Code Online (Sandbox Code Playgroud)
我尝试将语句包装BEGIN/END
,但得到相同的错误.是否可以从SQL Developer调用该过程?如果是这样,我需要使用什么语法?
sql-server ×6
mysql ×2
sql-function ×2
c# ×1
cursor ×1
sql ×1
sqlcommand ×1
sqlite ×1
t-sql ×1
triggers ×1