Если Вы будете не слишком побеспокоены о ширине дополнения, это решение на самом деле сохранит дополнение в процентах также..
textarea
{
border:1px solid #999999;
width:98%;
margin:5px 0;
padding:1%;
}
Не прекрасный, но Вы получите некоторое дополнение, и ширина составляет в целом 100% так ее вся польза
Вам необходимо добавить псевдоним для таблицы групп. Измените это:
UPDATE dbo.Groups
SET Flags = @var
FROM dbo.Users u INNER JOIN dbo.UsersGroups ug ON u.UserID = ug.UserID
INNER JOIN dbo.Groups g ON g.GroupID = ug.GroupID
WHERE u.UserName = 'UserA'
На это:
UPDATE g -- change dbo.Groups here to simply 'g'
SET g.Flags = @var
FROM dbo.Users u INNER JOIN dbo.UsersGroups ug ON u.UserID = ug.UserID
INNER JOIN dbo.Groups g ON g.GroupID = ug.GroupID
WHERE u.UserName = 'UserA'
Проблема в том, что вы не указали имя таблицы для поля «Флаги», и оно, вероятно, существует более чем в одной таблице в запросе. Добавьте имя таблицы в формате «Tablename.flags» перед всеми ссылками, чтобы устранить проблему.
UPDATE dbo.Groups Set dbo.Groups.Flags = @var FROM dbo.Users u INNER JOIN dbo.UsersGroups ug ON u.UserID = ug.UserID INNER JOIN dbo.Groups g ON g.GroupID = ug.GroupID WHERE u.UserName = 'UserA'
UPDATE g
SET g.Flags = @var
FROM
dbo.Groups g
INNER JOIN
dbo.UsersGroups ug
ON g.GroupID = ug.GroupID
INNER JOIN
dbo.Users u
ON u.UserID = ug.UserID
WHERE u.UserName = 'UserA'
Когда-то я знал причины, по которым этот танец должен выполняться таким образом - теперь я просто делаю это по привычке. Я подозреваю, что это как-то связано с предложением TSQL double FROM в операторах DELETE и возможностью говорить о двух разных экземплярах таблицы групп между предложением FROM и UPDATE ... или даже о двух разных экземплярах таблицы групп в from пункт (подумайте о самостоятельном присоединении).
Попробовать УСТАНОВИТЕ Groups.Flags = @var во втором обновлении
Вот обходной путь (хотя, возможно, и не лучшее решение):
UPDATE dbo.Groups
SET Flags = @var
FROM dbo.UsersGroups ug INNER JOIN dbo.Groups g ON g.GroupID = ug.GroupID
WHERE ug.UserID IN (SELECT UserID FROM dbo.Users WHERE UserName = 'UserA')
Просто введите alias.Flags или TableName.Flags в операторе обновления.
Таким образом, он становится таким:
UPDATE dbo.Users
SET Flags = @var
WHERE UserName = 'UserA'
UPDATE g
SET g.Flags = @var
FROM dbo.Users u
INNER JOIN dbo.UsersGroups ug ON u.UserID = ug.UserID
INNER JOIN dbo.Groups g ON g.GroupID = ug.GroupID
WHERE u.UserName = 'UserA'