Я хочу сразу обновить все записи в своей таблице и добавить скобки до и после каждой записи в записи. Могу ли я добавить что-нибудь в этот бланк, что поможет мне сделать то же самое?
update @column_list set ListColumns = '['+ _________ +']'
Я не смог ничего выяснить. Я подумал, что попробую спросить здесь один раз, иначе мне придется обновлять все записи отдельно, глядя на их фактические значения и добавляя скобки.
Каков ваш вклад и каков желаемый результат? Публиковать ничего, кроме запроса, который не дает вам того, что вы хотите, довольно бесполезно.
Нет ключевого слова для обновления всех столбцов, и основная причина того, что нет веских причин когда-либо делать это — для разных типов данных потребуются разные правила (например, если вы добавите [
и ]
к числу или дате), это прекратится. быть числом даты. Это очень похоже на проблему xy. поэтому я думаю, что лучше спросить, ПОЧЕМУ вам нужно изменить все столбцы во всех строках одновременно, а не как вы это делаете?
ОБНОВЛЕНИЕ ColX = CONCAT('[', ColX, ']') ОТ чего-то
В TSQL администратор базы данных явно записывает столбцы в каждом операторе.
Я не знаю, почему вы хотите заключить все в скобки, но мне приходит в голову сделать что-то вроде этого:
UPDATE [tableName]
SET
[col1] = CONCAT('[',[col1],']')
,[col2] = CONCAT('[',[col2],']')
,...
Если вы хотите выполнить это действие при вставке или обновлении самой таблицы, вы можете создать триггер
CREATE TRIGGER [triggerName]
ON [tableName]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF TRIGGER_NESTLEVEL()>1
RETURN;
UPDATE [tableName]
SET
[col1] = CONCAT('[', [col1], ']')
,[col2] = CONCAT('[', [col2], ']')
,....
WHERE ID IN (SELECT ID FROM INSERTED);
END
Однако установка типа (n)varchar в другой столбец типа данных вызовет проблемы.
Можете ли вы показать структуру таблицы, образец ввода и ожидаемый результат?