Я создал приложение, и я использовал этот фрагмент кода (который я нашел в Интернете), чтобы очистить все данные и сбросить столбцы Identity of Identity столы.Сбросить идентификатор столбца в базе данных SQL Server
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'DELETE FROM ?'
GO
EXEC sp_MSForEachTable 'DBCC CHECKIDENT(''?'', RESEED, 0)'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'
GO
Но у меня есть две таблицы, которые не имеют Identity
столбцов, и это дает мне проблему, говоря:
Msg 7997, уровень 16, состояние 1, строка 616
'SupplierBalance' не содержат столбец идентичности.Msg 7997, Level 16, State 1, Line 616
«CustomerBalance» не содержит идентификационный столбец.
Я хочу знать, есть ли способ сбросить идентификаторы столбцов таблиц, которые имеют только столбцы с идентификационным номером без получения ошибки.
спасибо.
Я полагаю, что использование 'TRUNCATE' будет обновлять ваш столбец' IDENTITY', поэтому вам не нужно вызывать команду 'RESEED'. –
Afaik @felix правильный. Таблица усечения не только будет обновлять ваши идентификационные коды, но и самый быстрый способ удалить содержимое всей таблицы, так как она не зарегистрирована в журнале sql. –
@ ZoharPeled, вопреки распространенному мнению. 'TRUNCATE' * минимально * зарегистрирован. http://dba.stackexchange.com/questions/30325/delete-vs-truncate/30347#30347 –