sqlerror
返回與@@ERROR 最近的語句錯誤碼,局限於DML語句和select語句,如果執行他們出現錯誤,則返回一個不等於0的錯誤碼,如果沒有出錯,則返回0。通常使用它來判斷語句有沒有執行成功。 如:if @@ERROR<>0
begin
select 1000
return
end
表示如果@@ERROR 執行出現問題,存儲過程返回自定義代碼1000後退出。
B. sql @@error用法
你的nv欄位是int類型,可以'a'是字元啊
再有@@eror=0才是成功,不等於0是錯誤代碼,你弄反了
C. sql error是什麼意思
sql error
SQL錯誤
例句
1.The transaction should fail and an SQL error should occur.
事務應該會失敗,並且出現一個SQL錯誤。
2.Otherwise, the command fails with a Transact-SQL error.
否則,命令將由於Transact-SQL錯誤而失敗。
3.With the property set this way, any SQL statements from the application that are not bound to the database will result in an SQL error.
採用這種方式設置該屬性,應用程序中任何未綁定到資料庫的SQL語句都將產生SQL錯誤。
4.For a Transact-SQL step, the most recent Transact-SQL error number encountered while running the command.
對於Transact-SQL步驟,指運行命令時遇到的最近的Transact-SQL錯誤號。
5.Attempting a DML operation on a table that is in alter mode results in SQL error code -19992.
如果嘗試對alter模式下的表執行DML操作,則會產生SQL錯誤碼-19992。
D. SQL執行錯誤怎麼辦
MySQL軟體所提供的許可權(mysql.user、mysql.db、mysql.host)
(1) 系統表mysql.user
user許可權表中欄位分為四類: 用戶欄位、許可權欄位、安全欄位和資源控制欄位。用戶欄位
許可權欄位
安全欄位
- # 查看是否支持ssl標准show variables like 'have_openssl';123
資源控制欄位
用戶欄位
mysql.db表許可權欄位
系統表mysql.tables_priv表結構
mysql.tables_priv表結構.png
mysql.tables_priv表結構.png
系統表mysql.columns_priv的表結構
用戶機制
(1) 登錄和退出MySQL軟體的完整命令- # 登錄mysql -h 127.0.0.1 -u root -p# 退出(q)exit|quit12345
執行CREATE USER語句來創建用戶賬戶
- create user 'mazaiting'@'localhost' identified by '123456';12
執行INSERT語句來創建用戶
- insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject)values('localhost', 'linghaoyu', password('linghaoyu'),'','','');# 使新建用戶生效flush privileges;12345
執行GRANT語句來創建用戶
- grant select on company.t_deptto 'wangxingqin'@'localhost' identified by 'wangxingqin';123
修改超級許可權用戶賬戶密碼
- # 通過mysqladmin命令修改root用戶密碼mysqladmin -u root -p password "123456"# 通過SET命令修改密碼set password=password("123456");# 更新系統表mysql.user數據記錄修改root用戶密碼update user set password=password("123456")where user="root" and host="localhost";12345678
- # 創建用戶grant select,create,drop on *.*to 'mazaiting'@'localhost' identified by 'mazaiting'with grant option;# 通過grant命令修改用戶密碼grant select,create,drop on *.*to 'mazaiting'@'localhost' identified by '123456';# 通過set命令修改用戶密碼set password for 'mazaiting'@'localhost'=password("123456");# 更新系統表mysql.user數據記錄修改用戶密碼update user set password=password("mazaiting")where user='mazaiting' and host='localhost';# 登錄當前用戶,並使用set命令修改密碼set password=password("123456");123456789101112131415
通過DROP USER語句刪除普通用戶
- drop user 'mazaiting'@'localhost';12
刪除系統表mysql.user數據記錄實現刪除用戶賬號
- # 選擇mysql資料庫use mysql;# 刪除用戶delete from user where user='mazaiting' and host='localhost';12345
許可權管理
(1) 對用戶進行授權- # 創建用戶grant select,create,drop on *.*to 'mazaiting'@'localhost' identified by 'mazaiting'with grant option;# 查詢表數據記錄select host,user,password,select_priv,update_priv,grant_priv,drop_privfrom mysql.userwhere user='mazaiting' G12345678910
- show grants for 'mazaiting'@'localhost' G12
- # 回收用戶的查詢許可權revoke select on *.* from 'mazaiting'@'localhost';# 回收用戶的全部許可權revoke all privileges, grant optionfrom 'mazaiting'@'localhost
用戶欄位.png
許可權欄位.png
安全欄位.png
資源控制.png
系統表mysql.user中的所有資源欄位的默認值為0,表示沒有任何限制。
(2) 系統表mysql.db和mysql.host
在系統資料庫mysql中,許可權表除了表user外,還有表db和表host,這兩張表都存儲了某個用戶對資料庫的許可權。
mysql.db表.png
mysql.host表
mysql.host表.png
許可權欄位.png
(3)其他許可權表
在系統資料庫mysql中,除了上述許可權表外,還有表tables_priv和columns_priv,其中標tables_priv用來實現單個表的許可權設置,表columns_priv用來實現單個欄位列的許可權設置。
columns_priv的表結構png
(2) 創建普通用戶賬戶
(3) 利用超級許可權用戶root修改用戶賬戶密碼
(4) 利用擁有超級許可權用戶root修改普通用戶賬戶密碼
(5) 刪除普通用戶賬戶
(2) 查看用戶所擁有許可權
(3) 收回用戶所擁有許可權
E. SQL語句錯誤
出現這個錯誤由於:
Odate為字元型 2009為整形
當字元型與整形比較 整形優先順序要高於字元型
所以會因隱式將字元型轉整形 而'2006-4-8'就轉成錯誤錯誤了
你的Pno欄位是是字元型,都是整形數據,以下運行可以
SELECT * FROM Order1 WHERE Onum=10;
你的語句可以改成
SELECT *
FROM Order1
WHERE YEAR(Odate)=2009;
F. SQL Error: 23503是什麼錯誤怎麼解決
今天在寫一個增加操作時,報錯信息如下:SQLCODE=-530, SQLSTATE=23503,該sqlcode說明:「對特定的約束名指定了無效的外健值」。
項目中用的框架是SSH,新增的主對象有多個外鍵,在新增時,我是根據id或name在資料庫中找到外鍵對象,賦給該主對象的外鍵。問題是出在當根據id或name沒有找到外鍵對象時,就不賦值,但此時該主對象的外鍵對象不為空,不知道在哪裡new的,所以錯誤就在此處,該外鍵對象不是持久化對象,所以報錯,我的解決方法是在根據id沒有找到對象時,給外鍵對象賦值為null。 當然這里前提是該外鍵可以為空。
G. odbc中 SQLError()函數使用方法
VLOOKUP函數
在表格或數值數組的首列查找指定的數值,並由此返回表格或數組中該數值所在行中指定列處的數值。
這里所說的「數組」,可以理解為表格中的一個區域。數組的列序號:數組的「首列」,就是這個區域的第一縱列,此列右邊依次為第2列、3列……。假定某數組區域為B2:E10,那麼,B2:B10為第1列、C2:C10為第2列……。
語法:
VLOOKUP(查找值,區域,列序號,邏輯值)
「查找值」:為需要在數組第一列中查找的數值,它可以是數值、引用或文字元串。
「區域」:數組所在的區域,如「B2:E10」,也可以使用對區域或區域名稱的引用,例如資料庫或數據清單。
「列序號」:即希望區域(數組)中待返回的匹配值的列序號,為1時,返回第一列中的數值,為2時,返回第二列中的數值,以此類推;若列序號小於1,函數VLOOKUP 返回錯誤值 #VALUE!;如果大於區域的列數,函數VLOOKUP返回錯誤值 #REF!。
「邏輯值」:為TRUE或FALSE。它指明函數 VLOOKUP 返回時是精確匹配還是近似匹配。如果為 TRUE 或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於「查找值」的最大數值;如果「邏輯值」為FALSE,函數 VLOOKUP 將返回精確匹配值。如果找不到,則返回錯誤值 #N/A。如果「查找值」為文本時,「邏輯值」一般應為 FALSE 。另外:
·如果「查找值」小於「區域」第一列中的最小數值,函數 VLOOKUP 返回錯誤值 #N/A。
·如果函數 VLOOKUP 找不到「查找值」 且「邏輯值」為 FALSE,函數 VLOOKUP 返回錯誤值 #N/A。
下面舉例說明VLOOKUP函數的使用方法。
假設在Sheet1中存放小麥、水稻、玉米、花生等若干農產品的銷售單價:
A B
1 農產品名稱 單價
2 小麥 0.56
3 水稻 0.48
4 玉米 0.39
5 花生 0.51
…………………………………
100 大豆 0.45
Sheet2為銷售清單,每次填寫的清單內容不盡相同:要求在Sheet2中輸入農產品名稱、數量後,根據Sheet1的數據,自動生成單價和銷售額。設下表為Sheet2:
A B C D
1 農產品名稱 數量 單價 金額
2 水稻 1000 0.48 480
3 玉米 2000 0.39 780
…………………………………………………
在D2單元格里輸入公式:
=C2*B2 ;
在C2單元格里輸入公式:
=VLOOKUP(A2,Sheet1!A2:B100,2,FALSE) 。
如用語言來表述,就是:在Sheet1表A2:B100區域的第一列查找Sheet2表單元格A2的值,查到後,返回這一行第2列的值。
這樣,當Sheet2表A2單元格里輸入的名稱改變後,C2里的單價就會自動跟著變化。當然,如Sheet1中的單價值發生變化,Sheet2中相應的數值也會跟著變化。
其他單元格的公式,可採用填充的辦法寫入。
VLOOKUP函數使用注意事項
說到VLOOKUP函數,相信大家都會使用,而且都使用得很熟練了。不過,有幾個細節問題,大家在使用時還是留心一下的好。
一.VLOOKUP的語法
VLOOKUP函數的完整語法是這樣的:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
1.括弧里有四個參數,是必需的。最後一個參數range_lookup是個邏輯值,我們常常輸入一個0字,或者False;其實也可以輸入一個1字,或者true。兩者有什麼區別呢?前者表示的是完整尋找,找不到就傳回錯誤值#N/A;後者先是找一模一樣的,找不到再去找很接近的值,還找不到也只好傳回錯誤值#N/A。這對我們其實也沒有什麼實際意義,只是滿足好奇而已,有興趣的朋友可以去體驗體驗。
2.Lookup_value是一個很重要的參數,它可以是數值、文字字元串、或參照地址。我們常常用的是參照地址。用這個參數時,有兩點要特別提醒:
A)參照地址的單元格格式類別與去搜尋的單元格格式的類別要一致,否則的話有時明明看到有資料,就是抓不過來。特別是參照地址的值是數字時,最為明顯,若搜尋的單元格格式類別為文字,雖然看起來都是123,但是就是抓不出東西來的。
而且格式類別在未輸入數據時就要先確定好,如果數據都輸入進去了,發現格式不符,已為時已晚,若還想去抓,則需重新輸入。
B)第二點提醒的,是使用時一個方便實用的小技巧,相信不少人早就知道了的。我們在使用參照地址時,有時需要將lookup_value的值固定在一個格子內,而又要使用下拉方式(或復制)將函數添加到新的單元格中去,這里就要用到「$」這個符號了,這是一個起固定作用的符號。比如說我始終想以D5格式來抓數據,則可以把D5弄成這樣:$D$5,則不論你如何拉、復制,函數始終都會以D5的值來抓數據。
3.Table_array是搜尋的范圍,col_index_num是范圍內的欄數。Col_index_num 不能小於1,其實等於1也沒有什麼實際用的。如果出現一個這樣的錯誤的值#REF!,則可能是col_index_num的值超過范圍的總欄位數。
二.VLOOKUP的錯誤值處理。
我們都知道,如果找不到數據,函數總會傳回一個這樣的錯誤值#N/A,這錯誤值其實也很有用的。比方說,如果我們想這樣來作處理:如果找到的話,就傳回相應的值,如果找不到的話,我就自動設定它的值等於0,那函數就可以寫成這樣:
=if(iserror(vlookup(1,2,3,0))=true,0,vlookup(1,2,3,0))
這句話的意思是這樣的:如果VLOOKUP函數返回的值是個錯誤值的話(找不到數據),就等於0,否則,就等於VLOOKUP函數返回的值(即找到的相應的值)。
這裡面又用了兩個函數。
第一個是iserror函數。它的語法是iserror(value),即判斷括弧內的值是否為錯誤值,如果是,就等於true,不是,就等於false。
第二個是if函數,這也是一個常用的函數的,後面有機會再跟大家詳細講解。它的語法是if(條件判斷式,結果1,結果2)。如果條件判斷式是對的,就執行結果1,否則就執行結果2。舉個例子:=if(D2=」」,」空的」,」有東西」),意思是如D2這個格子里是空的值,就顯示文字「空的」,否則,就顯示「有東西」。(看起來簡單吧?其實編程序,也就是這樣子判斷來判斷去的。)
三.含有VLOOKUP函數的工作表檔案的處理。
一般來說,含有VLOOKUP函數的工作表,如果又是在別的檔案里抓取數據的話,檔案往往是比較大的。尤其是當你使用的檔案本身就很大的時候,那每次開啟和存檔都是很受傷的事情。
有沒有辦法把文件壓縮一下,加快開啟和存檔的速度呢。這里提供一個小小的經驗。
在工作表裡,點擊工具——選項——計算,把上面的更新遠程參照和儲存外部連結的勾去掉,再保存檔案,則會加速不少,不信你可以試試。
下面詳細的說一下它的原理。
1.含有VLOOKUP函數的工作表,每次在保存檔案時,會同時保存一份其外部連結的檔案。這樣即使在單獨打開這個工作表時,VLOOKUP函數一樣可以抓取到數值。
2.在工作表打開時,微軟會提示你,是否要更新遠程參照。意思是說,你要不要連接最新的外部檔案,好讓你的VLOOKUP函數抓到最新的值。如果你有足夠的耐心,不妨試試。
3.了解到這點,我們應該知道,每次單獨打開含有VLOOKUP函數的工作表時,裡面抓取外部檔案的數值,只是上次我們存檔時保存的值。若要連結最新的值,必須要把外部檔案同時打開。
VLOOKUP函數我所了解的,也只是這些,大家有什麼好的經驗或有什麼疑問,歡迎大家提出,一起探討。
H. sql語句的錯誤:
語法解釋:
String sql ="create table 表名
(
主鍵名 欄位類型 PRIMARY KEY ,
欄位名 欄位類型 其它定義
)";
示例:
String sql ="create table "+it.getName()+"
(
"+pri.getName()+" nVarChar(50) PRIMARY KEY ,
"+pri.getText()+" nVarChar(150) default \'默認值\' null
)";
I. 如何解決sql error
運行資料庫出現錯誤,解決步驟如下:
1、單擊「開始」—「所有程序」—「MS SQL Server 2008R2」;
2、選擇「Configuration tools」;
3、單擊「SQL Server Configuration Manager」,打開;
4、右鍵單擊「SQL Server(你的伺服器名字)」,單擊「啟動」;
5、啟動完成後,重新連接資料庫即可。
J. 在運行SQL時出現錯誤,請問如何解決
運行資料庫出現錯誤,解決步驟如下:
1、單擊「開始」—「所有程序」—「MS SQL Server 2008R2」;
2、選擇「Configuration tools」;
3、單擊「SQL Server Configuration Manager」,打開;