1.在SQL Server数据库中要把某个字段改null?
语句:set xxxx=null;
快捷键:ctrl + 0;
2.得到任意一个存储过程的参数列表
方法1:
select c.name from syscolumns c,sysobjects o
where o.id=c.id
and o.xtype='P'
and o.name='your proc name'
方法2:
exec sp_procedure_params_rowset @procedure_name = 'storeproc name'
例如:
1)、
select c.name,c.colorder from syscolumns c,sysobjects o
where o.id=c.id
and o.xtype='P'
and o.name='proc_EMS_SearchEquipment'
得到
@type 1
@model 2
@location 3
@description 4
2)、sp_procedure_params_rowset @procedure_name='proc_EMS_SearchEquipment'
DBName dbo proc_EMS_SearchEquipment;1 @RETURN_VALUE 0 4 0 NULL 0 3 NULL NULL 10 NULL NULL int int
DBName dbo proc_EMS_SearchEquipment;1 @type 1 1 0 NULL 1 3 NULL NULL 10 NULL NULL int int
DBName dbo proc_EMS_SearchEquipment;1 @model 2 1 0 NULL 1 129 50 50 NULL NULL NULL varchar varchar
DBName dbo proc_EMS_SearchEquipment;1 @location 3 1 0 NULL 1 129 50 50 NULL NULL NULL varchar varchar
DBName dbo proc_EMS_SearchEquipment;1 @description 4 1 0 NULL 1 129 100 100 NULL NULL NULL varchar varchar
3.怎样使用该函数
//执行存储过程
public DataSet ExecuteDataSet(string storedProcedure, params object[] param)
{
SqlCommand selectCommand = this.GenerateCommand(storedProcedure, param);
selectCommand.CommandTimeout = 300;
DataSet dataSet = null;
SqlDataAdapter adapter = new SqlDataAdapter(selectCommand);
try
{
dataSet = new DataSet();
adapter.Fill(dataSet);
}
catch (Exception exception)
{
throw exception;
}
finally
{
if (!this.UnderTran)
{
this.Connect.Close();
}
}
return dataSet;
}
//将传入的object[]值赋给对应存储过程参数
private SqlCommand GenerateCommand(string cmdstr, params object[] val)
{
SqlCommand command = new SqlCommand(cmdstr, this.Connect);
command.CommandType = CommandType.StoredProcedure;
if (!this.UnderTran && (this.Connect.State != ConnectionState.Open))
{
this.Connect.Open();
}
else
{
command.Transaction = this.Tran;
}
if ((val != null) && (val.Length > 0))
{
SqlCommand selectCommand = new SqlCommand("sp_procedure_params_rowset", this.Connect);
if (this.UnderTran)
{
selectCommand.Transaction = this.Tran;
}
selectCommand.CommandType = CommandType.StoredProcedure;
selectCommand.Parameters.Add("@procedure_name", cmdstr);
DataSet dataSet = new DataSet();
new SqlDataAdapter(selectCommand).Fill(dataSet);
DataTable table = dataSet.Tables[0];
table.Rows.RemoveAt(0);
for (int i = 0; i < val.Length; i++)
{
if (val[i] != null)
{
command.Parameters.Add(table.Rows[i]["PARAMETER_NAME"].ToString(), val[i]);
}
}
}
return command;
}
//调用函数
public DataTable SearchEquipment(int type,string model,string location,string description)//OSR.Entity.EMSData
{
object[] obj = new object[4];
obj[0] = type;
obj[1] = model;
obj[2] = location;
obj[3] = description;
return visitor.ExecuteDataSet("proc_EMS_SearchEquipment", obj).Tables[0];
}