2015-07-10 1 views
1

Here is the link to the solution I found and used Код, содержащийся в этом вопросе, должен отлично решить мой случай.Обновить значение столбца для нескольких таблиц, только 1 строка затронута

однако, только 1 ряд пострадавший. Интересно, означает ли это, что я должен добавить цикл или другие условия, чтобы он проходил через все таблицы.

Declare @ColName as nVarchar(100), @NewValue as nVarchar(50) 
    Set @ColName = 'test_column' -- 'your col name' 
    Set @NewValue = getDate() -- your date time value 
    Select 'Update ' + TABLE_NAME + ' set ' + COLUMN_NAME + ' = ''' + @NewValue + '''' From INFORMATION_SCHEMA.COLUMNS Where column_name = 'test_column' 
+2

Вам нужно добавить свой код к вопросу. Не указывайте нам ссылку и попросите нас угадать. – Yatrix

+0

Благодарим вас за советы. Я только что обновил код. Надеюсь, что это облегчит кому-нибудь это. – user3546425

ответ

1

Вы можете обновлять только по 1 таблице за раз. Вы можете обновлять несколько строк в одной таблице или нескольких столбцах, но не в нескольких таблицах в одном обновлении. Вам понадобится цикл для итерации для каждой таблицы обновления.

Select 'UPDATE ' + TABLE_NAME + ' SET CreatedDateTime = ''<<New Value>>'' ' AS SqlStatement INTO #T 
From INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'CreatedDateTime' 

WHILE EXISTS (SELECT * FROM #T) BEGIN 
    DECLARE @Sql VARCHAR(4000) = (SELECT TOP 1 SqlStatement FROM #T) 
    EXEC (@Sql) 
    DELETE #T WHERE SqlStatement = @Sql 
END 
+0

Пожалуйста, не стесняйтесь, чтобы поддержать ответ, если он помог вам и принять его, если он решил ваш вопрос. Это помогает другим узнать, какие ответы, возможно, помогли с вашим вопросом. Это также увеличивает вашу репутацию. –

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