當前位置:首頁 » 編程語言 » sql引用變數

sql引用變數

發布時間: 2023-04-07 11:44:06

A. 如何在sql語句中引用變數

declare @id int
set @id=1

select * from table where id=@id

B. sql中引用日期變數

declare@suffixvarchar(1000)
declare@sqlvarchar(2000)--這里定義了一個變數
select@suffix=CONVERT(varchar(100),GETDATE(),112)
set@sql='select*fromtest_'+@suffix+''--需要指定動態sql
exec(@sql)--這句是執行

C. SQL中的變數引用方法

strSQL = "selet * from table1 where name = ' " &UserName& " '"

上面這個語句肯定是在你的asp文件中的了。

asp字元串連接符是&,這個你知道的,所以,不難看出,strSQL是由三部分組成的:

1. "selet * from table1 where name = ' "
2. UserName
3. " '"

如果你把語句顯示到頁面上,你就可以看到,真正的語句如下(假設UserName變數的值是『王明』):
selet * from table1 where name = '王明'
這也是最終你的資料庫要執行的語句。

這就很容易解釋了,雙引號在ASP中定義字元,"'"這個是一個字元串,不過這個字元串只有一個字元,就是那個單引號,這個單引號要用到資料庫SQL語句中使用。

一句話,雙引號是ASP用來定義字元串的,&符號是用來連接兩個字元串的。

祝好運。

D. 如何在SQL語句中使用變數

使用變數一般是在存儲過程、方法、觸發器等T-Sql編程的時候用的,使用Declare 來定義變數,在方法/存儲過程/觸發器等裡面進行調用。

E. JSP中SQL引用變數的問題

String operation1="insert into "+tableName+"values ("+nameInsert+","+sexInsert+","+age+")";

後面多了幾個引號,不管變數什麼類型,寫sql語句時,加上就行了,能解析鉛吵散出來的。。。
如果插入的不是所有欄位,需要在tableName(這是變數么,碰源不是要放在前面的引號里)的後面加個括弧「(裡面寫後面的插入列對應的資料庫列名。。。)」
希望可槐氏以幫助你,謝謝採納。。。

F. C++中,查詢sqlserver時 sql語言中如何引用int變數

CString sql;
sql.Format(_T("SELECT * FROM 表名 Where ID=%d"),i);
USES_CONVERSION;
LPSTR strSQL=T2A(sql);
m_pRecordset->Open(strSQL,
m_pConnection.GetInterfacePtr(),
adOpenStatic,
adLockOptimistic,
adCmdText);
如上,把int型變數i 組合成cstring字元串,然後汪埋類型轉換悶陵笑,就可以用了。
可以組合各種數據類型,char要加'%s'例如螞含char str;sql.Format(_T("SELECT * FROM 表名 Where ID='%s'"),str);

G. oracle pl/sql中如何使用變數

定義並使用變數

PL/SQL有四種類型:標量類型,復合類型,引用類型 (reference),LOB(Large Obejct)類型

一、標量類型

最常用的就是標量類型,是指只能存放單個數值的變數,包括數字類型、字元類型、日期類型和布爾類型,每種類型又包含相應的子類型。

常量標量類型如下:

VARCHAR2 (n) , CHAR (n), NUMBER (p,s),DATE, TIMESTAMP , LONG , LONG RAW ,BOOLEAN,BINARY_INTEGER(僅 PL / SQL使用),BINARY_FLOAT和BINARY_DOUBLE(10g新引入的)

定義標量:

identifier [CONSTANT] datatype [NOT NULL] [:=| DEFAULT expr]

使用標量需要注意的是=號被:=取代,與delphi一樣的賦值符號@_@

例子:

v_name VARCHAR2 ( 10 );
v_rate CONSTANTS NUMBER ( 4 , 2 ) : = 3.04 ;

為了防止定義的變數類型與表中的欄位類型不一致,可以使用%TYPE來定義:

v_name employee.name % TYPE;

如上面所示,v_name的類型就與表 employee中的name欄位類型一樣!!

二、復合變數:

用於存放多個值的變數稱為復合變數,包括PL/SQL記錄,PL/SQL表,嵌套表和VARRAY四種類型

1.PL/SQL記錄

類似於C/C++中的結構概念:

declare
TYPE employee_record is RECORD(
id employee.id % TYPE,
name employee.name % TYPE,
email employee.email % TYPE);
em_record employee_record;
begin
select id,name,email into em_record from employee where name =& name;
dbms_output.put_line( ' 雇員名: ' || em_record.name || ' 雇員ID: ' || em_record.id);
end ;

2.PL/SQL表,類似於數組概念,不同的是PL/SQL表允許負值下標,而且沒有上下限,如:

declare
TYPE employee_table is table of employee.name % TYPE index by BINaRY_INTEGER;
em_table employee_table;
begin
select name into em_table( - 1 ) from employee where name =& name;
dbms_output.put_line( ' 雇員名: ' || em_table( - 1 ));
end ;

3.嵌套表,與PL/SQL 表相似,不同的是嵌套表可以做表列的數據類型,而PL/SQL表不能,使用嵌套表作為表列時,必須為其指定專門的存儲表,如:

create or replace TYPE emp_type as OBJECT(name VARCHAR2 ( 10 ),salary NUMBER ( 6 , 2 ),hiredate DATE);

CREATE OR REPLACE TYPE emp_array IS TABLE OF emp_type;

CREATE TABLE department(
deptno NUMBER ( 2 ),dname VARCHAR2 ( 10 ),
employee emp_array)NESTED TABLE employee STORE as employee_dept;

4.VARRAY(變長數組),與嵌套表相似,也可以做為表列的數據類型,但是嵌套表沒有個數限制,而VARRAY有個數限制,如:

CREATE TYPE TEST_ARRAY IS VARRAY(20) OF emp_type;

三、引用變數(reference)

類似於C++中的指針或者JAVA中引用的概念,用於存放數值指針的變數,使用此變數,可以使得應用程序共享相同對象,降低佔用空間。此類有兩種類型:游標(REF CURSOR)和對象類型(REF OBJECT)

1.REF CURSOR,定義時同時指定SELECT語句的游標稱為顯式或者靜態游標,在打開時才指定SELECT語句的游標稱為動態游標,如:

DECLARE
TYPE c1 IS REF CURSOR ;
emp_cursor c1;
v_name employee.name % TYPE;
v_sal employee.salary % TYPE;
begin
open emp_cursor for
SELECT name,salary FROM EMPLOYEE ;
LOOP
FETCH emp_cursor INTO v_name,v_sal;
EXIT WHEN emp_cursor % NOTFOUND;
dbms_output.put_line(v_name);
END LOOP;
close emp_cursor;
end ;

2.REF OBJECT,與JAVA的引用概念相同,存儲的是指向對象的指針

四、LOB類型

LOB類型是指用於存儲大批量數據的變數,包括內部的3種(CLOB,BLOB,NCLOB)和外部LOB(BFILE)。
CLOB,NCLOB用於存儲大量的字元數據。
BLOB用於存儲大批量二進制數據(如圖象)。
BFILE則存儲指向OS文件的指針。

H. sql server 2005觸發器中如何引用指定的變數值

可以定義一個無論何時用INSERT語句向表中插入數據時都慎纖悄會執行的觸發器。

當觸發INSERT觸發器時,新的數據行就會被插入到觸發器表和inserted表中。inserted表是一個邏輯表,它包含了已經插入的數據行的一個副本。inserted表包含了INSERT語句中已記錄的插入動作。inserted表還允許引用由初始化INSERT語句而產生的日誌數據。觸發器通過檢查inserted表來確定是否執行觸發器動作或如何執行它。inserted表中的行總是觸發器表中一行或多行的副本。

日誌記錄了所有修改數據的動作(INSERT、UPDATE和DELETE語句),但在事務日誌中的信息是不可讀的。然而,inserted表允許你引用由INSERT語句引起的日誌變化,這樣就可以將插入數據與發生的變化進行比較,來驗證它們或採取進一步的動作。也可以直接引用插入的數據,而不必豎宴將它們存儲到變數中。

示例

在本例中,將創建一個觸發器。無論何時訂購產品(無論何時向Order Details表中插入一條記錄),這個觸發器都將更新Procts表中的一列(UnitsInStock)。用原來的值減去訂寬渣購的數量值即為新值。

USE Northwind
CREATE TRIGGER OrdDet_Insert
ON [Order Details]
FOR INSERT
AS
UPDATE P SET
UnitsInStock = P.UnitsInStock – I.Quantity
FROM Procts AS P INNER JOIN Inserted AS I
ON P.ProctID = I.ProctID

DELETE觸發器的工作過程

當觸發DELETE觸發器後,從受影響的表中刪除的行將被放置到一個特殊的deleted表中。deleted表是一個邏輯表,它保留已被刪除數據行的一個副本。deleted表還允許引用由初始化DELETE語句產生的日誌數據。

使用DELETE觸發器時,需要考慮以下的事項和原則:

·當某行被添加到deleted表中時,它就不再存在於資料庫表中;因此,deleted表和資料庫表沒有相同的行。

·創建deleted表時,空間是從內存中分配的。deleted表總是被存儲在高速緩存中。

·為DELETE動作定義的觸發器並不執行TRUNCATE TABLE語句,原因在於日誌不記錄TRUNCATE TABLE語句。

示例 在本例中,將創建一個觸發器,無論何時刪除一個產品類別(即從Categories表中刪除一條記錄),該觸發器都會更新Procts表中的Discontinued列。所有受影響的產品都標記為1,標示不再使用這些產品了。

USE Northwind
CREATE TRIGGER Category_Delete
ON Categories
FOR DELETE
AS
UPDATE P SET Discontinued = 1
FROM Procts AS P INNER JOIN deleted AS d
ON P.CategoryID = d.CategoryID

熱點內容
android讓狀態欄透明 發布:2024-11-02 12:20:09 瀏覽:180
java反射使用 發布:2024-11-02 12:09:03 瀏覽:920
賺錢游戲掛機腳本鏈接 發布:2024-11-02 12:08:22 瀏覽:810
windowsxp用戶名和密碼是什麼啊 發布:2024-11-02 12:03:13 瀏覽:950
工行解壓碼 發布:2024-11-02 12:03:07 瀏覽:118
本田冠道出廠配置什麼牌子輪胎 發布:2024-11-02 12:03:07 瀏覽:470
怎麼打開被gcc編譯過的軟體 發布:2024-11-02 12:00:52 瀏覽:435
新時達as380原始密碼是多少 發布:2024-11-02 11:51:27 瀏覽:810
導航網站源碼下載 發布:2024-11-02 11:49:55 瀏覽:976
飢荒搭建的伺服器如何換新檔 發布:2024-11-02 11:48:11 瀏覽:958