sql變數申明
❶ sqlserver中聲明變數並使用
你的問題出在對變數的賦值上了,應該用:SELECT @a=@@IDENTITY,
以下是我按你的要求做的例子,SQLServer 2008中測試正確:
Create Table login
(sId int IDENTITY PRIMARY KEY,
Name varchar(40) ,
Password varchar(40),
alevel varchar(40))
go
Create Table uninfo
(uid int)
go
declare @a INT
Insert Into login (Name,Password,alevel)
values (7,7,4)
Select * From login
SELECT @a=@@IDENTITY
insert into uninfo (uid) values (@a)
Select * From uninfo
go
drop table login
go
drop table uninfo
go
❷ sql怎麼聲明變數
聲明局部變數語法:DECLARE @variable_name DataType其中 variable_name為局部變數的名稱,DataType為數據類型。
給局部變數賦值有兩種方法:
1、SET @variable_name=value
2、SELECT @variable_name=value
兩者的區別:SET賦值語句一般用於賦給變數一個指定的常量,SELECT賦值語句一般用於從表中查詢出數據然後賦給變數。
例如:DECLARE @count int
SET @count=123
PRINT @count
全局變數:由於全局變數是系統定義的,我們這里只做舉例。
@@ERROR 最後一個T-SQL錯誤的錯誤號
@@IDENTITY 最後一次插入的標識值
@@LANGUAGE 當前使用的語言名稱
@@MAX_CONNECTIONS 可以創建的同時連接的最大數目
@@SERVERNAME 本地伺服器的名稱
@@VERSION SQL Server的版本信息
❸ SQL SERVER中變數聲明的命令是什麼
declare @變數名 類型
比如給你寫個例子,declare的那些都是生明變數,set是給變數賦值
declare @a int
declare @b int
declare @c int
declare @d int
declare @str int
set @str=0
while @str<=9999
begin
set @a=cast(substring(right('+cast(cast(@str as varchar) as varchar),4),1,1) as int)
set @b=cast(substring(right('+cast(cast(@str as varchar) as varchar),4),2,1) as int)
set @c=cast(substring(right('+cast(cast(@str as varchar) as varchar),4),3,1) as int)
set @d=cast(substring(right('+cast(cast(@str as varchar) as varchar),4),4,1) as int)
if (@a*7+@b*9+@c*10+@d*5+222)%11=3
begin
print ('a='+cast(@a as varchar)+' b='+cast(@b as varchar)+' c='+cast(@c as varchar)+' d='+cast(@d as varchar))
end
set @str=@str+1
end
❹ SQLserver 怎麼聲明變數
點擊開始——所有程序——Microsoft SQL Server——企業管理器——(local)(Windows NT)——安全性——登錄——sa,彈出SQL Server登錄屬性—sa界面,輸入新的密碼,確定。
密碼無法看到,但是可以重新設置。
❺ SQL 查詢語句如何定義變數
as在SQL中是別名的用法,它可以為表名取別名,也可以為列名取別名,
其作用主要是為了增加可讀性。
❻ SQL定義日期變數代碼
您好,存儲過程里參數的默認值不能使用函數,所以不能在存儲過程里直接把參數的默認值設置為當前系統時間,不過可以在存儲過程里賦值。還有一點疑問,既然@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
❼ sql中的變數定義
你的用法有錯誤,變數不能這樣使用的,
as在SQL中是別名的用法,它可以為表名取別名,也可以為列名取別名,
其作用主要是為了增加可讀性。
示例:為列取別名的兩種寫法
1、欄位名 as 別名 註:as 也可以省略
select id as 編號,name as 姓名 from table1
這句也可以寫成:
select id 編號,name 姓名 from table1
2、用等號來使用別名
select 編號=id,姓名=name from table1
其效果和前兩個語句一樣
示例2:為表名取別名的用法
select a.id 編號,name 姓名 from table1 as a join table2 as b on a.id=b.id
其中as 也可以省略。
❽ .sql文件中怎麼聲明變數請詳細說一下。
聲明變數:
declare @變數名 變數類型
如:
declare @datetime datetime
設置變數值:
set @變數名 = 值
設置變數為當前時間:
set @變數名 = getdate()
❾ 如何在SQL中聲明一個數組變數以及相關SQL語
集合:是具有相同定義的元素的聚合。Oracle有兩種類型的集合:
可變長數組(VARRAY):可以有任意數量的元素,但必須預先定義限制值。
嵌套表:視為表中之表,可以有任意數量的元素,不需要預先定義限制值。
在PL/SQL中是沒有數組(Array)概念的。但是如果程序員想用Array的話,就得變通一下,用TYPE 和Table of Record來代替多維數組,一樣挺好用的。
emp_type 就好象一個table 中的一條record 一樣,裡面有id, name,gender等。emp_type_array 象個table, 裡面含有一條條這樣的record (emp_type),就象多維數組一樣。
--單維數組
DECLARE
TYPE emp_ssn_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
best_employees emp_ssn_array;
worst_employees emp_ssn_array;
BEGIN
best_employees(1) := '123456';
best_employees(2) := '888888';
worst_employees(1) := '222222';
worst_employees(2) := '666666';
FOR i IN 1..best_employees.count LOOP
DBMS_OUTPUT.PUT_LINE('i='|| i || ', best_employees= ' ||best_employees(i)
|| ', worst_employees= ' ||worst_employees(i));
END LOOP;
END;
--多維數組
DECLARE
TYPE emp_type IS RECORD
( emp_id employee_table.emp_id%TYPE,
emp_name employee_table.emp_name%TYPE,
emp_gender employee_table.emp_gender%TYPE );
TYPE emp_type_array IS TABLE OF emp_type INDEX BY BINARY_INTEGER;
emp_rec_array emp_type_array;
emp_rec emp_type;
BEGIN
emp_rec.emp_id := 300000000;
emp_rec.emp_name := 'Barbara';
emp_rec.emp_gender := 'Female';
emp_rec_array(1) := emp_rec;
emp_rec.emp_id := 300000008;
emp_rec.emp_name := 'Rick';
emp_rec.emp_gender := 'Male';
emp_rec_array(2) := emp_rec;
FOR i IN 1..emp_rec_array.count LOOP
DBMS_OUTPUT.PUT_LINE('i='||i
||', emp_id ='||emp_rec_array(i).emp_id
||', emp_name ='||emp_rec_array(i).emp_name
||', emp_gender = '||emp_rec_array(i).emp_gender);
END LOOP;
END;
-------------- Result --------------
i=1, emp_id =300000000, emp_name =Barbara, emp_gender = Female
i=2, emp_id =300000008, emp_name =Rick, emp_gender = Male
❿ SQL Server中聲明變數
SQL Server中聲明變數
declare @a int
declare @b int
declare @c int
declare @d int
declare @str int
set @str=0
while @str<=9999
begin
set @a=cast(substring(right('0000'+cast(cast(@str as varchar) as varchar),4),1,1) as int)
set @b=cast(substring(right('0000'+cast(cast(@str as varchar) as varchar),4),2,1) as int)
set @c=cast(substring(right('0000'+cast(cast(@str as varchar) as varchar),4),3,1) as int)
set @d=cast(substring(right('0000'+cast(cast(@str as varchar) as varchar),4),4,1) as int)
if (@a*7+@b*9+@c*10+@d*5+222)%11=3
begin
print ('a='+cast(@a as varchar)+' b='+cast(@b as varchar)+' c='+cast(@c as varchar)+' d='+cast(@d as varchar))
end
set @str=@str+1
end