两个表
urlName表
字段
id int
url varchar(200)
zid int
type varchar(20)siteName表
字段
zid int
name varchar(200)有主外键关系,现在,我想用一条SQL语句同事更新urlName表里的url字段和siteName表里的name字段,请问各位大侠有什么办法?在线等
urlName表
字段
id int
url varchar(200)
zid int
type varchar(20)siteName表
字段
zid int
name varchar(200)有主外键关系,现在,我想用一条SQL语句同事更新urlName表里的url字段和siteName表里的name字段,请问各位大侠有什么办法?在线等
在urlName表建更新siteName表对应数据的触发器
这样urlName表更新了,相应siteName表数据也会更新 先建urlName表的触发器
create TRIGGER urlName_Chg ON urlName FOR UPDATE
AS
update siteName set name=urlName.url
from urlName
where urlName.zid=siteName.zid以后你执行修改urlName表url内容,zid所对应的siteName表的name相应内容也自动更新祝楼主好运!
create view v_url as
select * from urlName ,siteName where urlName.zid = siteName.zid创建视图时候老是报“各view再函数的队列名必须独一无二。view再函数'v_url'的队列名'zid'被复数指定。”
UPDATE urlName,siteName SET url=@url,name=@name WHERE siteName.zid=urlName.zid AND ID=@IN
这样不是可行吗?
此句話在SQL 2000下是不行的
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran(ArrayList SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection=conn;
SqlTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
for(int n=0;n<SQLStringList.Count;n++)
{
string strsql=SQLStringList[n].ToString();
if (strsql.Trim().Length>1)
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
是不是urlName和siteName是同一个东西?如果是同一个东西,设计TABLE的时候我觉得就不应该出现在两个表里。