我有以下要修改的..
DECLARE @tablename AS VARCHAR (1000)
DECLARE @sql AS VARCHAR (1000)
IF OBJECT_ID('tempdb.dbo.#tables') IS NOT NULL
DROP TABLE #tables
SELECT *
INTO #tables
FROM sys.tables
WHILE EXISTS (SELECT *
FROM #tables)
BEGIN
SELECT @tablename = name
FROM #tables
SELECT @sql = 'truncate table ' + @tablename;
PRINT @sql
EXECUTE (@sql)
DELETE #tables
WHERE name = @tablename;
END
上面的代码将截断数据库中的所有表,这是我需要的,但是我只希望它适用于属于“dim”模式的表。
例如,我有以下表格..
dbo.sales dim.employee dim.office
我希望脚本只截断“dim”模式表,而不是 dbo.sales 表。
这是假设我没有任何 PK/FK(因为我有另一个代码处理 PK/FK 的删除/创建)。
任何帮助,将不胜感激。
谢谢。