Azure sql database Sql Azure,截断并重新设置所有表的种子

Azure sql database Sql Azure,截断并重新设置所有表的种子,azure-sql-database,Azure Sql Database,DBCC在sqlazure中不可用,因此基本上我们无法执行DBCC操作。那么我们如何在sqlazure中重置标识呢 我写这篇文章是为了截断所有记录,并将表重新设置为1,显然这是行不通的,因为不允许使用DBCC EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL’ EXEC sp_MSForEachTable ‘DELETE FROM ?’ EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK

DBCC
sqlazure
中不可用,因此基本上我们无法执行
DBCC
操作。那么我们如何在
sqlazure
中重置标识呢

我写这篇文章是为了截断所有记录,并将表重新设置为1,显然这是行不通的,因为不允许使用
DBCC

EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL’
EXEC sp_MSForEachTable ‘DELETE FROM ?’
EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK CONSTRAINT ALL’
DBCC checkident (?, RESEED, 1)  ??
GO
因此,我如何使用此脚本重新设定种子。

以下是我所做的:

declare @dropConstraintsSql nvarchar(max);
declare @enableConstraintsSql nvarchar(max);
declare @deleteSql nvarchar(max);

-- create a string that contains all sql statements to drop contstraints 
-- the tables are selected by matching their schema_id and type ('U' is table)   

SELECT @dropConstraintsSql = COALESCE(@dropConstraintsSql + ';','') + 'ALTER TABLE [' + name + '] NOCHECK CONSTRAINT all'
FROM sys.all_objects 
WHERE type='U' and schema_id=1
-- AND... other conditions to match your tables 


-- create a string that contains all your DELETE statements...

SELECT @deleteSql = COALESCE(@deleteSql + ';','') + 'DELETE FROM [' + name + '] WHERE ...'
FROM sys.all_objects 
WHERE type='U' and schema_id=1
-- AND ... other conditions to match your tables 

-- create a string that contains all sql statements to reenable contstraints    

SELECT @enableConstraintsSql = COALESCE(@enableConstraintsSql + ';','') + 'ALTER TABLE [' + name + '] WITH CHECK CHECK CONSTRAINT all'
FROM sys.all_objects 
WHERE type='U' and schema_id=1
-- AND ... other conditions to match your tables 

-- in order to check if the sqls are correct you can ...
-- print @dropConstraintsSql
-- print @deleteSql
-- print @enableConstraintsSql


-- execute the sql statements in a transaction

begin tran 

exec sp_executesql  @dropConstraintsSql
exec sp_executesql  @deleteSql
exec sp_executesql  @enableConstraintsSql

-- commit if everything is fine
rollback

Sql Azure中也不支持sp_msforeachtable。这里有一个替代方案:我在执行脚本时出错,“;”附近的
语法不正确
@Zapnologica您必须删除“WHERE…”子句或添加一个条件