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&"'"