我只需要将数据值插入到某些表中,并且无法找到正确的语法。这是参考表:
create table PERFORMER (
STAGE_NM char(15) primary key,
P_NAME varchar(10),
CHRIST_NM varchar(10)
);
假设我只想将数据插入STAGE_NM
和P_NAME
,我会这样做:
insert data PERFORMER values ('The Cage', 'Nicolas Cage')
或者,对于我想留空的''
,我是否会空CHRIST_NM
?像这样:
insert data PERFORMER values ('The Cage', 'Nicolas Cage', '')
我觉得这将是第一个,但我无法在这个假设中找到任何说我对错的事。
答案 0 :(得分:2)
为什么不在插入语句中明确显示?
insert performer (STAGE_NM, P_NAME) values ('The Cage', 'Nicolas Cage');
答案 1 :(得分:2)
如此处http://www.w3schools.com/sql/sql_insert_into_select.asp
所述如果您不想在所有列中插入数据,可以添加一些列名
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
所以你可以使用
INSERT INTO Performer (STAGE_NM, P_NAME) VALUES ('The Cage', 'Nicolas Cage');
希望它有用!
贝特朗
答案 2 :(得分:2)
强烈建议您使用列列表,以防您以后重新排序列,特别是因为它们都是字符串。
namespace ClassLibrary1
{
public sealed class Class1
{
public delegate int myFunction(object o);
public Dictionary<string, myFunction> list = new Dictionary<string, myFunction>();
private static readonly Class1 _instance = new Class1();
static Class1()
{
}
public Class1()
{
string[] n = { "f1", "f2" };
MethodInfo mInfo;
foreach (var i in n)
{
mInfo = typeof(Class1).GetTypeInfo().GetDeclaredMethod(i);
ParameterExpression objExpr = Expression.Parameter(typeof(object));
Expression<myFunction> expr = Expression.Lambda<myFunction>(Expression.Call(null, mInfo, objExpr), objExpr);
list.Add(i, expr.Compile());
}
list.Add("f11", f1);
list.Add("f21", f2);
}
public static Class1 Instance
{
get
{
return _instance;
}
}
public static int f1(object o)
{
string n = MethodBase.GetCurrentMethod().Name;
System.Diagnostics.Debug.WriteLine("current function is {0} ", n);
return 0;
}
public static int f2(object o)
{
string n = MethodBase.GetCurrentMethod().Name;
System.Diagnostics.Debug.WriteLine("current function is {0} ", n);
return 0;
}
}
}
如果确实不想列出它们并且只是拥有值,我建议使用NULL而不是零长度字符串,如示例所示。