Sql 如何向变量添加update语句值?
我想将数据保存在变量中,并在以后的过程中使用它Sql 如何向变量添加update语句值?,sql,sql-server,Sql,Sql Server,我想将数据保存在变量中,并在以后的过程中使用它 UPDATE acc_Account SET acc_Account.CompanyID = ( SELECT TOP 1 utl_Company.CompanyID FROM utl_C
UPDATE acc_Account
SET acc_Account.CompanyID = ( SELECT TOP 1
utl_Company.CompanyID
FROM utl_Company
ORDER BY CompanyID DESC
)
WHERE acc_Account.AccountNumber = @AccountNumber
如何将CompanyID保存在变量中,以便稍后在insert语句中使用?在代码的开头包含以下内容:
declare @var varchar(20) -- change the data type according to your needs
set @var = (SELECT TOP 1 utl_Company.CompanyID FROM utl_Company ORDER BY CompanyID DESC)
在代码的开头包含以下内容:
declare @var varchar(20) -- change the data type according to your needs
set @var = (SELECT TOP 1 utl_Company.CompanyID FROM utl_Company ORDER BY CompanyID DESC)
在update语句之前创建一个,然后设置它,然后使用它
DECLARE @companyID INT;
SELECT @companyID = "YOUR QUERY";
在update语句之前创建一个,然后设置它,然后使用它
DECLARE @companyID INT;
SELECT @companyID = "YOUR QUERY";
我认为有效的方法是使用OUTPUT子句
我认为有效的方法是使用OUTPUT子句
这是正确的方法。不过,我向OP提出的一个建议是使用select MINCompanyID而不是top 1和order。如果表较大,则更容易理解,而且性能略有提高。@Bishoy Ezzat-before就可以了。@BishoyEzzat在之前使用它将允许您更新acc_Account SET acc_Account.CompanyID=@var,其中acc_Account.AccountNumber=@AccountNumber,这显然可以节省您在更新中再次运行查询的时间。@ADyson,这样我就可以在更新语句的'@var'之后使用它了。。它保存了更新语句@比肖伊·埃扎特:阿德森的意思是你可以:1。如上所示设置变量。2.然后在update语句中使用它,如ADyson所示。由于变量已经设置好,update语句将运行得更快,并且过程本身也会运行得更快,假设您稍后将再次使用该变量。这是正确的方法。不过,我向OP提出的一个建议是使用select MINCompanyID而不是top 1和order。如果表较大,则更容易理解,而且性能略有提高。@Bishoy Ezzat-before就可以了。@BishoyEzzat在之前使用它将允许您更新acc_Account SET acc_Account.CompanyID=@var,其中acc_Account.AccountNumber=@AccountNumber,这显然可以节省您在更新中再次运行查询的时间。@ADyson,这样我就可以在更新语句的'@var'之后使用它了。。它保存了更新语句@比肖伊·埃扎特:阿德森的意思是你可以:1。如上所示设置变量。2.然后在update语句中使用它,如ADyson所示。由于已经设置了变量,update语句将运行得更快,并且过程本身也会运行得更快,假设您稍后将再次使用该变量。