Tag: 存储过程

T-SQL获取存储过程的SELECTed值

在T-SQL中,这是允许的: DECLARE @SelectedValue int SELECT @SelectedValue = MyIntField FROM MyTable WHERE MyPrimaryKeyField = 1 所以,有可能得到一个SELECT的值,并将其填入一个variables(显然它是标量)。 如果我把相同的select逻辑存储在一个存储过程中: CREATE PROCEDURE GetMyInt AS SELECT MyIntField FROM MyTable WHERE MyPrimaryKeyField = 1 我可以得到这个存储过程的输出,并将其填入一个variables? 就像是: DECLARE @SelectedValue int SELECT @SelectedValue = EXEC GetMyInt (我知道上面的语法是不允许的,因为我试过了!)

非法混合sorting(utf8_unicode_ci,IMPLICIT)和(utf8_general_ci,IMPLICIT)进行操作'='

MySql上的错误消息:操作'='时,非法混合的sorting规则(utf8_unicode_ci,IMPLICIT)和(utf8_general_ci,IMPLICIT) 我已经经历了其他几个职位,无法解决这个问题。 受影响的部分与此类似: 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, […]

一般来说,存储过程比现代RDBMS的内联语句更高效?

传统观点认为存储过程总是比较快。 所以,因为他们总是更快,使用他们所有的时间 。 我很确定这是以一度历史背景为基础的。 现在,我不主张存储过程是不需要的,但是我想知道什么情况下存储过程在MySql,SqlServer,Oracle等现代数据库中是必需的。 所有通过存储过程访问是矫枉过正的吗?

过程期望没有提供的参数

在SQL Server中访问存储过程时出现错误 Server Error in '/' Application. Procedure or function 'ColumnSeek' expects parameter '@template', which was not supplied. 这发生在我通过.net的数据连接到sql (System.data.SqlClient)的参数来调用存储过程时,即使我正在提供参数。 这是我的代码。 SqlConnection sqlConn = new SqlConnection(connPath); sqlConn.Open(); //METADATA RETRIEVAL string sqlCommString = "QCApp.dbo.ColumnSeek"; SqlCommand metaDataComm = new SqlCommand(sqlCommString, sqlConn); metaDataComm.CommandType = CommandType.StoredProcedure; SqlParameter sp = metaDataComm.Parameters.Add("@template",SqlDbType.VarChar,50); sp.Value = Template; SqlDataReader metadr = metaDataComm.ExecuteReader(); 我的存储过程是: USE […]

你如何debuggingMySQL存储过程?

我目前的debugging存储过程的过程非常简单。 我创build了一个名为“debug”的表,在运行时从存储过程插入variables值。 这使我能够看到脚本中给定点上的任何variables的值,但是有没有更好的方法来debuggingMySQL存储过程?

如何检测存储过程是否已经存在

我必须编写一个部署脚本,这个脚本在存储过程存在或不存在的情况下可以工作。 即如果它存在,那么我需要改变它,否则创build它。 我怎么能在SQL中做到这一点。 我正在使用SQL Server 2005

如何检查数据库中是否存在视图?

我有一些SQL代码需要执行,如果一个特定的视图存在于数据库中。 我将如何去检查视图是否存在? 编辑:正在使用的DBMS是Microsoft SQL Server

如何在SQL Server中检查存储过程或函数中最后一次更改的date

我需要检查上次更改函数的时间。 我知道如何检查创builddate(它在SQL Server Management Studio中的函数属性窗口中)。 我发现在SQL Server 2000中无法检查修改date(看这篇文章: 是否有可能确定存储过程最后在SQL Server 2000中进行了修改? ) 是否有可能在SQL Server 2008中检查它? MS是否在系统表中增加了一些新function,以便检查?

如何在SQL Developer中执行SQL Server存储过程?

我已经给一个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调用过程? 如果是这样,我需要使用什么语法?

如何从.net代码传递表值参数到存储过程

我有一个MS SQL Server 2005数据库。 在几个过程中,我有表参数,我把它传递给一个存储过程作为一个nvarchar(用逗号分隔)和内部分为单个值。 我将它添加到SQL命令参数列表中,如下所示: cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo"; 我必须将数据库迁移到SQL Server 2008.我知道有表值参数,我知道如何在存储过程中使用它们。 但我不知道如何传递一个SQL命令中的参数列表。 有没有人知道正确的Parameters.Add程序语法? 还是有另一种方式来传递这个参数?