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