sql存储过程声明变量
如果@ApproverDepartment是字符型,而且值为数字(如'9'),则该语句没有任何错误
你可以把select @sqlCommand的输出结果拷贝上来,一起看一下。
② SQL 存储过程变量
整个语句块创建了一个存储过程,其中的查询使用了存储过程的参数。你可以通过直接执行存储过程,将值传给传出过程的参数,来实现执行查询。
例如:
execute dbo].[p_sele_sp] '%a%','1%',‘aaa%’,'bbb%';
如果希望直接执行查询语句,则需要用declare关键字事先声明变量。如下:
-- 声明变量
declare @spbh varchar(20) , @zjm varchar(100) , @sptm varchar(20) , @splb varchar(20)
-- 给变量赋值
set @spbh = ’%a%'
set @zjm = '1%'
set @sptm = ‘aaa%’
set @splb = 'bbb%'
--执行查询
SELECT TOP 200 spbh,spname,dw,spgg,scqy,spcd,sl,lsj,zdsj,spid,splb,jj,
sptm,spsx,kfid,jx,pzwh,is_sy,jbz,zbz,ajia,bjia,cjia,djia,bz,bz1,bz2,bz3,bz4,bz5,bz6,bz7,bz8,bz9
FROM t_sp_info
WHERE ( status = '是' ) AND
( pym like @zjm OR spname like @zjm OR spbh like @spbh OR sptm like @sptm ) AND ( splb like @splb )
③ sql 存储过程中 如何使用declare 有的存储过程声明了,有的没有声明。请回答的详细点。。谢谢
1、打开SQL Database Studio。
④ sql中declare是什么意思
DECLARE_SERIAL,DECLARE_SERIAL / IMPLEMENT_SERIAL 宏的技术详解(转) DECLARE_DYNAMIC表明的是支持类型信息。
DECLARE_SERIAL / IMPLEMENT_SERIAL 宏的技术详解(转) DECLARE_DYNAMIC表明的是支持类型信息, 有了这个宏,我们就可以判断一个类究竟是什么类,比如
class A;
class B:public A;
A a;
B b;
(4)sql存储过程声明变量扩展阅读:
DECLARE_DYNCREATE是动态创建的意思,这个有点类似Com的类工厂。
它实际上是用类CRunTime class记录了类的静态创建函数的地址,这个特性在很多地方需要使用,就在下面说的DECLARE_SERIAL就是一个经典的例子。
动态创建主要用在 "我不知道要创建的对象就是是什么类,但是我知道它肯定是从某个基类派生的"。
⑤ SQL Server2008存储过程必须声明标量变量
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT SNAME,STATUS,CITY
FROM S
WHERE SNO=@SNO
GO
DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20)
EXECUTE SUPPLIER 'S1',@NAME OUTPUT,@STATU OUTPUT,@CIT OUTPUT
SELECT 'The result'=@NAME,@STATU,@CIT
GO
⑥ SQL server2000存储过程,提示“必须声明变量@FYear”
存储过程中肯定使用到了@FYear,而你没有声明这个变量。
decalre @FYear 类型
如果你声明了,那你把语法写出来吧,肯定是哪个地方不小心写错了。
看您贴出的代码,可不只是这个提示这个错误了。
首先你的@sqlstr没声明
后边的set @sqlstr = @sqlstr + 加号的后边都是字符串的部分,也就是说,存储过程的两个参数,都被你引到了单引号当中,那么就失去了传值的作用了,成了字符串的一部分了。
还有select @sqlstr=@sqlstr+',coalesce(p.'+FEmpField+',0)' from cz_t_gzfl order by fid,这个返回行数是一行吧?如果是多行,这个没办法赋值的。
⑦ 在SQL存储过程中,如何声明变量,赋值变量。最好有具体语句配上实例。3Q啦。谢谢各位大侠的帮忙
/*
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如何存储过程中申请@变量
整个语句块创建了一个存储过程,其中的查询使用了存储过程的参数。你可以通过直接执行存储过程,将值传给传出过程的参数,来实现执行查询。
例如:
execute dbo].[p_sele_sp] '%a%','1%',‘aaa%’,'bbb%';
如果希望直接执行查询语句,则需要用declare关键字事先声明变量。如下:
-- 声明变量
declare @spbh varchar(20) , @zjm varchar(100) , @sptm varchar(20) , @splb varchar(20)
-- 给变量赋值
set @spbh = ’%a%'
set @zjm = '1%'
set @sptm = ‘aaa%’
set @splb = 'bbb%'
--执行查询
SELECT TOP 200 spbh,spname,dw,spgg,scqy,spcd,sl,lsj,zdsj,spid,splb,jj,
sptm,spsx,kfid,jx,pzwh,is_sy,jbz,zbz,ajia,bjia,cjia,djia,bz,bz1,bz2,bz3,bz4,bz5,bz6,bz7,bz8,bz9
FROM t_sp_info
WHERE ( status = '是' ) AND
( pym like @zjm OR spname like @zjm OR spbh like @spbh OR sptm like @sptm ) AND ( splb like @splb )
⑨ sqlserver 存储过程如何动态的声明 变量
/*
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