1. sql insert語句中如何使用變數
sql insert語句中使用變數:
(insert)向表中添加一個新記錄,要使用SQL INSERT 語句。這里有一個如何使用這種語句的例子: INSERT mytable (mycolumn) VALUES (『some data') 這個語句把字元串'some data'插入表mytable的mycolumn欄位中。將要被插入數據的欄位的名字在第一個括弧中指定,實際的數據在第二個括弧中給出。
INSERT 語句的完整句法如下:INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |
Values_list | select_statement}
如果一個表有多個欄位,通過把欄位名和欄位值用逗號隔開,可以向所有的欄位中插入數據。假設表mytable有三個欄位first_column,second_column,和third_column.下面的INSERT語句添加了一條三個欄位都有值的完整記錄:INSERT mytable (first_column,second_column,third_column)
VALUES (『some data','some more data','yet more data')
可以使用INSERT語句向文本型欄位中插入數據。但是,如果需要輸入很長的字元串,應該使用WRITETEXT語句。
如果在INSERT 語句中只指定兩個欄位和數據。向一個表中插入一條新記錄,但有一個欄位沒有提供數據。在這種情況下,有下面的四種可能:
1)如果該欄位有一個預設值,該值會被使用。例如,假設插入新記錄時沒有給欄位third_column提供數據,而這個欄位有一個預設值'some value'.在這種情況下,當新記錄建立時會插入值'some value'。
2)如果該欄位可以接受空值,而且沒有預設值,則會被插入空值。
3)如果該欄位不能接受空值,而且沒有預設值,就會出現錯誤。會收到錯誤信息:The column in table mytable may not be null.
4)最後,如果該欄位是一個標識欄位,那麼它會自動產生一個新值。當向一個有標識欄位的表中插入新記錄時,只要忽略該欄位,標識欄位會給自己賦一個新值。
註:向一個有標識欄位的表中插入新記錄後,可以用SQL變數@@identity來訪問新記錄 的標識欄位的值。考慮如下的SQL語句:
INSERT mytable (first_column) VALUES(『some value')
INSERT anothertable(another_first,another_second)
VALUES(@@identity,'some value')
如果表mytable有一個標識欄位,該欄位的值會被插入表anothertable的another_first欄位。這是因為變數@@identity總是保存最後一次插入標識欄位的值。
欄位another_first應該與欄位first_column有相同的數據類型。但是,欄位another_first不能是應該標識欄位。Another_first欄位用來保存欄位first_column的值。
2. 關於SQL語句中使用變數的問題
插入進去的數據的類型不匹配. 以int型和nvarchar型為例,其他的像日期型的你自己發揮.
問:
存儲過程這樣的:
CREATE PROCEDURE insertxuesheng @xuehao int,@xingming varchar,@banji varchar,@zhuanye varchar,@nianling int,@xingbie varchar AS
insert 學生(學號,姓名,班級,專業,年齡,性別) values(@xuehao,@xingming,@banji,@zhuanye,@nianling,@xingbie)
代碼這樣的:
SqlCommand cmd = new SqlCommand("insertxuesheng", conn);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.AddWithValue("@xuehao", TextBox1.Text);
cmd.Parameters.AddWithValue("@xingming",TextBox2.Text);
cmd.Parameters.AddWithValue("@banji", TextBox3.Text);
cmd.Parameters.AddWithValue("@zhuanye", TextBox4.Text);
cmd.Parameters.AddWithValue("@nianling", TextBox5.Text);
cmd.Parameters.AddWithValue("@xingbie", TextBox6.Text);
cmd.ExecuteNonQuery();
插入數據後我去看資料庫里的表,發現只有學號和年齡有數據,其他都是空值,怎麼回事
答:
傳入的數據類型不對.
因為學號和年齡是int型,所以傳入TextBoxN.Text可以. 因為這時TextBoxN.Text = " 123", 實際上的SQL語句中就是:xuehao=123
而針對其他的欄位,則都是字元型的,因此 在SQL語句中應該是: xingming = 'abc' .
而:cmd.Parameters.AddWithValue("@xingming",TextBox2.Text);
執行的結果是: xingming=abc.這當然就不行啦.
所以改為: cmd.Parameters.AddWithValue("@xingming","'" + TextBox2.Text + "'"); 就是給TextBoxN.Text前後各加一個引號再傳給存儲過程.
3. sql語句使用變數的前提是什麼
雙擊滑鼠打開用於資料庫管理的「企業管理器」
4. 帶有變數sql語句應該怎麼寫
'"+ a + "'這個寫法不變,
再執行SQL語句的時候executeSql(sql.replaceAll("'",""))這樣寫,要把單引號去掉,
因為你發現單引號的field是不能在mysql中查詢的,這和where中的條件還不一樣!
請叫我雷鋒
5. sql語句(欄位裡面不能用變數嗎)
sql語句不能直接使用變數。
存儲過程中可以使用變數,調用存儲過程時傳遞變數,由資料庫將變數替換為實際值並執行得到結果。
6. sql語句變數怎麼寫
你的錯誤說不好
我個人感覺可能是出在date in (......)可能括弧里的數據不是日期時間類型或字元串類型
是sql servre嗎
不需要這樣做啊
select daima,mingcheng,sum(zhengfu)
from meirishuju
where daima in (select daima from daima where biaoji=2)
and datediff(d,date,getdate()) between 0 and 4
group by daima,mingcheng
order by sum(zhengfu) desc
如果有問題好好看看datediff函數的文檔
7. 如何在SQL語句中使用變數
使用變數一般是在存儲過程、方法、觸發器等T-Sql編程的時候用的,使用Declare 來定義變數,在方法/存儲過程/觸發器等裡面進行調用。
8. 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的版本信息
9. SQL語句中怎樣使用變數
c#語法
String strSql="SELECT id,pwd FROM Users WHERE id='"+userid+"' AND pwd='"+username+"'"
vb語法
String strSql="SELECT id,pwd FROM Users WHERE id='"&userid&"' AND pwd='"&username&"'"