sql存儲過程變數賦值
㈠ 在sql server 2005存儲過程中如何給時間變數賦值
存儲過程里參數的默認值不能使用函數,所以不能在存儲過程里直接把參數的默認值設置為當前系統時間,不過可以在存儲過程里賦值。還有一點疑問,既然@myday是當前系統時間了,為什麼還要做成參數呢?
CREATE PROCEDURE pro_test
@myday char(10)
AS
set @myday=convert(char(10),getdate(),21)
update mytable set status = 1 where day>@myday
GO
@myday不為參數時可以這么寫
CREATE PROCEDURE pro_test
AS
declare @myday char(10)
set @myday=convert(char(10),getdate(),21)
update mytable set status = 1 where day>@myday
GO
㈡ Sql中如何給變數賦值
DECLARE @n1 int,@n2 varchar(10)
set @n1 =(select age from table where column=xxx)
set @n2=(select gender from table where column = xxx )
------------------
或者一起賦值
就是樓上那個
DECLARE @n1 int,@n2 varchar(10)
select @n1 =age,@n2=gender
from table where column = xxx
------------------
select @n1,@n2 就知道變數的值了
㈢ mssql 的 存儲過程 變數賦值問題
自動生成的id 一般是增量的,所以用提取最大值的方法取的最新ID,
設表TABLE0有欄位ID,FIELD1,FIELD2,FIELD3四個欄位,這樣:
DECLARE @NEWID INT--聲明新ID變數
INSERT INTO TABLE0(FIELD1,FIELD2,FIELD3) SELECT FIELD1 FIELD2 FIELD3 FROM TABLE1 WHERE FIELD1='XXXX' .......--插入語句
IF @@ROWCOUNT>0 --如果插入了新行
SET @NEWID=(SELECT MAX(ID) FROM TABLENAME) --給新ID賦值
select @newid as 新ID --使用該變數
㈣ 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
㈤ mysql 存儲過程怎麼賦值
DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_getAllTablesCount`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_getAllTablesCount`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtablesnVARCHAR(100);
DECLAREtableCountINT;
DECLAREstopFlagINT;
DECLAREsqlStrVARCHAR(1000);
--注意:請修改資料庫名稱
DECLAREcursor_nameCURSORFORSELECTTABLE_NAMEFROMinformation_schema.tablesWHEREtable_schema='test';
'02000'SETstopFlag=1;
CREATETABLEIFNOTEXISTStemp_table(table_nameVARCHAR(100),table_countVARCHAR(100));
OPENcursor_name;
REPEAT
FETCHcursor_nameINTOtableName;
SETsqlStr=CONCAT('SELECTCOUNT(1)into@tableCountFROM',tableName);
SELECTsqlStrINTO@sqlStr;
--select@sqlStr;
SELECT@tableCountINTOtableCount;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
SETsqlStr=CONCAT('insertintotemp_tablevalues(''',CONCAT(tableName),''',''',CONCAT(tableCount),''');');
SELECTsqlStrINTO@sqlStr;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
UNTILstopFlagENDREPEAT;
CLOSEcursor_name;
SELECTtable_name,table_countFROMtemp_tableORDERBYtable_countDESC;
--PREPAREstepFROM@sql1;
--EXECUTEstep;
DROPTABLEtemp_table;
END$$
DELIMITER;
㈥ SQL存儲過程中怎樣給變數賦值
exec 是執行存儲過程的命令,不能作為存儲過程名
而且你這個似乎是希望用變數轉換成SQL命令,不是這樣用法的
㈦ 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 將存儲過程的結果賦值給變數
set @id=(GetsystemNo 'CXD')
修改為
set @id=GetsystemNo ('CXD')
看看?