我正在尝试使用HOLIDAY_DATE_TABLE中最高的主键值(HID)来编写更新tbl8_update_transactions HID字段(其中为null)的查询.我收到以下错误
"聚合可能不会出现在UPDATE语句的集合列表中"
我已经读过我需要使用子查询完成此操作,但需要帮助.谢谢
USE BillingUI;
UPDATE tbl8_update_transactions
SET tbl8_update_transactions.HID = MAX(HOLIDAY_DATE_TABLE.HID)
FROM HOLIDAY_DATE_TABLE
WHERE tbl8_update_transactions.HID = NULL;
Run Code Online (Sandbox Code Playgroud)
更新:尝试了提议的解决方案
UPDATE tbl8_update_transactions
SET HID = h.maxHID
FROM (select max(HOLIDAY_DATE_TABLE.HID) as maxHID from HOLIDAY_DATE_TABLE) h
WHERE tbl8_update_transactions.HID IS NULL;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会影响0行/不起作用.我认为这是因为HID是外键(in tbl8_update_transactions).真正的问题似乎是我的C#方法,用于将记录插入表中(它插入行而不填充外键).我想用触发器而不是C#代码处理它.我的表格如下.
USE BillingUI;
CREATE TABLE HOLIDAY_DATE_TABLE
(
HID INT IDENTITY PRIMARY KEY,
TABLE_NUMBER nchar(2) NOT NULL,
HOLIDAY_DATE nchar(8) NOT NULL,
FIELD_DESCRIPTION nVARchar(43) NULL,
);
USE BillingUI;
CREATE TABLE tbl8_update_transactions
(
TID INT IDENTITY PRIMARY KEY,
TABLE_NUMBER nchar(2) NOT NULL,
HOLIDAY_DATE …Run Code Online (Sandbox Code Playgroud) 我试图计算表AUTHORIZED_USERS中存在登录用户ID的实例数.我正在寻找的值可以在UNAME字段中找到,它是一个包含以下格式的字符串:COMPANYNAME\111222333.如果表中存在该值,则表示用户有权访问应用程序/视图.否则,它们将被重定向到拒绝访问的页面.我的代码接近工作,但出现以下错误
Incorrect syntax near '\601011307'.
Run Code Online (Sandbox Code Playgroud)
\ 601011307是表UNAME字段中包含的条目的一部分.它应该识别的全部值是COMPANYNAME\601011307.
如何防止此错误并将计数值分配给变量,以便我可以在条件中使用它?
public ActionResult HolidayDateTable()
{
string whoareyoupeople = User.Identity.Name.ToString();
DateTime date = DateTime.Now;
string myerrorstring = "User " + whoareyoupeople + " attempted unauthorized access on " + date + ".";
SqlConnection conn = new SqlConnection("Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
{
cmd.CommandText = string.Format("SELECT COUNT(*) FROM AUTHORIZED_USERS WHERE UNAME = "+whoareyoupeople+")");
int count = (int)cmd.ExecuteScalar();
if (count == 0)
{
return RedirectToAction("AccessDenied");
}
else
{
return View(db.HOLIDAY_DATE_TABLE);
} …Run Code Online (Sandbox Code Playgroud)