2009-12-06 4 views
1

У меня есть требование обновить столбец с несколькими значениями. Запрос выглядит следующим образом.Сохраненная процедура обновления столбца на сервере Sql

Update table1 set column1 = (
    select value from table2 where table1.column0 = table2.coulmn 
) 

Есть ли обобщенная хранимая процедура для такого требования, как указано выше?

+0

Я не понимаю, что вы спрашиваете, пожалуйста, больше информации. –

+0

Позвольте мне дать точный запрос обновления camsfolio набор СЧА = (выберите camsnav.nav из camsnav где camsfolio.schcode = camsnav.schcode) в основном я хочу, чтобы camsfolio.nav обновляться на основе schcode. – 2009-12-06 17:32:18

ответ

3

, не создавая инструкцию в виде строки и используя инструкцию «выполнить», я не знаю ни одного. Обычно «выполнить» нахмурился, так как это потенциальная точка атаки.

1

Почему вы хотите обновить одну таблицу информацией, которая легко доступна в другом? Похоже, вы просто гарантируете, что вам придется запускать этот запрос каждый раз, когда вы выполняете обновление, вставляете или удаляете против таблицы camsnav. В противном случае, как вы собираетесь синхронизировать их?

Кроме того, если вы не можете гарантировать, что подзапрос будет возвращать ровно одну строку, вероятно, будет безопаснее использовать SQL Server специфичный и собственный формат обновления:

UPDATE f SET nav = n.nav 
FROM camsfolio AS f 
INNER JOIN camsnav AS n 
ON f.schcode = n.schcode; 
0

SQL Server не используется «обобщенные хранимые процедуры» для такого рода вещей. Вам решать построить собственный СП, составленный с помощью соответствующего параметризованного оператора UPDATE.

Смежные вопросы