不把结果转成一个字符串,直接在后面写上
在end后加上
and ( select TJNR from ....... ) = ?? 你预计的一个值。
如果说 TJNR 是一个条件串,象 ' and ss = dfs ' 这样的内容,就需要用动态SQL语句
⑵ SQL的数据存储过程如何使用
在sql里面要执行该存储过程的话就用EXEC
存储过程名;如果你的存储过程带有参数的话在执行的时候还要在存储过程名的后面加空格在家参数;
例如创建存储过程:
CREATE
PROCEDURE
getStuInfo
@Id
INT
AS
SELECT
*
FROM
Student
WHERE
Id
=
@Id
执行该存储过程:
EXEC
getStuInfo
'101'
这段查询语句的意思是从学生信息表中查询出编号为101的学生的所有信息
sql数据库里的存储过程还可以在c#窗体应用程序里调用,这就涉及到连接数据库了,如果你需要的话我可以格尼一段代码示例
⑶ Sql server 存储过程中怎么将变量赋值
/*
Sql server 存储过程中怎么将变量赋值
*/
--SQL赋值语句
DECLARE @test1 INT
SELECT @test1 = 111
SET @test1 = 222
--SQL函数赋值,假定count()是自定义函数
DECLARE @test2 INT
SELECT @test2 = COUNT(*) FROM sys.sysobjects
--SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)
IF OBJECT_ID('sp_test') IS NOT NULL DROP PROCEDURE sp_test
GO
CREATE PROCEDURE sp_test(@test INT OUTPUT)
AS
BEGIN
SELECT @test = 999
END
GO
DECLARE @test3 INT
EXEC sp_test @test3 OUTPUT
SELECT @test3
DROP PROCEDURE sp_test
GO
⑷ SQL 中存储过程怎么使用
一、简单的储存过程:
1、创建一个存储过程
create procere GetUsers()
begin
select * from user;
end;12345
2、调用存储过程
call GetUsers();12
3、删除存储过程
drop procere if exists GetUsers;
二、带参数的存储过程
1、MySql 支持 IN (传递给存储过程) , OUT (从存储过程传出) 和 INOUT (对存储过程传入和传出) 类型的参数 , 存储过程的代码位于 BEGIN 和 END 语句内 , 它们是一系列 SQL 语句 , 用来检索值 , 然后保存到相应的变量 (通过指定INTO关键字) ;
2、下面的存储过程接受三个参数 , 分别用于获取用户表的最小 , 平均 , 最大分数 , 每个参数必须具有指定的类型 , 这里使用十进制值(decimal(8,2)) , 关键字 OUT 指出相应的参数用来从存储过程传出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、调用此存储过程 , 必须指定3个变量名(所有 MySql 变量都必须以@开始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、该调用并没有任何输出 , 只是把调用的结果赋给了调用时传入的变量@minScore, @avgScore, @maxScore, 然后即可调用显示该变量的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 参数 , 输入一个用户 id , 返回该用户的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、调用存储过程 :
call GetNameByID(1, @userName);
select @userName;123
⑸ 存储过程中实现绑定变量只能通过动态sql吗
plsql里面直接使用变量也是使用了绑定变量的。
比如在存储过程中使用
select empno from emp where empno=p_empno ;
其实使用的也是绑定变量。
在内存中是类似这样的格式:
SELECT EMPNO FROM EMP WHERE EMPNO=:B1
当然这也和数据库参数plsql_optimize_level,但是一般都不会关注。
⑹ sql数据库中的自定义函数可以调用存储过程
1)自定义函数中不能调用存储过程,如果调用了,函数可以顺利创建,但是调用函数会出错
2)自定义函数中不能创建表,删除表,插入表数据
解决办法:
可以先把存储过程返回的结果插入到临时表,然后在函数里调用临时表,或者运用内置函数,或者使用复杂的联合查询实现想要的结果
⑺ SQL的存储过程问题.在存储过程里面能否使用另一个存储过程
当然是调用另一个过程了
可以这样
create procere proc1 @id char(10) output
as
begin
select @id = id from table
end
这样调用
declare @id char(10)
exec proc1 @id output--不要掉了output
这样现在的@id存有proc1生成的数据了
---------------------------------------------
也可以这样
create procere proc1
as
begin
declare @id char(10)
select @id = id from table
return @id
end
调用时有所区别
declare @id char(10)
exec @id = proc1
⑻ SQL存储过程如何调用存储过程
1、首先先创建一个存储过程,代码如图,存储过程主要的功能是为表JingYan插入新的数据。
⑼ SQL存储过程中怎样给变量赋值
exec 是执行存储过程的命令,不能作为存储过程名
而且你这个似乎是希望用变量转换成SQL命令,不是这样用法的
⑽ sql 存储过程输入参数能直接用函数赋值吗
不能直接用函数赋值
ALTER PROCEDURE [dbo].[prcu_QSToGB]
@QSID uniqueidentifier =‘’,
@Map nvarchar(8) = 'A'
BEGIN
set @QSID =dbo.R_AdtRule_Catalogid_1047()
end