--我抽象个吧 --表ta(tag int) a=1 b=3 c=5truncate table a truncate table b truncate table c根据c=1 执行truncate table a c=3 .....b ... c=4 .....a,b--估计表述的还是不清
你不是都已经写出来了? 自己用判断语句,然后truncate table.或者用动态SQL语句.if ... set @sql = 'truncate table a' else ...exec @sql
if begin end else if begin end
IF OBJECT_ID('A') IS NOT NULL DROP TABLE A IF OBJECT_ID('B') IS NOT NULL DROP TABLE B IF OBJECT_ID('TA') IS NOT NULL DROP TABLE TA GO CREATE TABLE A(COL1 INT ) INSERT INTO A SELECT 1 CREATE TABLE B(COL2 INT) INSERT INTO B SELECT 2 CREATE TABLE TA(TAG INT) INSERT INTO TA SELECT 1 UNION ALL SELECT 3 GO DECLARE @SQL VARCHAR(MAX) SELECT @SQL=ISNULL(@SQL+' ','')+'TRUNCATE TABLE '+ CASE TAG WHEN 1 THEN 'A' --表名 WHEN 2 THEN 'C' WHEN 3 THEN 'B' END FROM TA GROUP BY TAG EXEC (@SQL)SELECT 'A',COUNT(1) FROM A UNION ALL SELECT 'B',COUNT(1) FROM B /* A 0 B 0 */
如果有多表,表之间如何关联?
如何更有效地在SQL Server论坛上提问
http://topic.csdn.net/u/20100716/19/6f132f16-20e4-418c-8dee-b99d5f86d320.html?75910
--我抽象个吧
--表ta(tag int)
a=1
b=3
c=5truncate table a
truncate table b
truncate table c根据c=1 执行truncate table a
c=3 .....b
...
c=4 .....a,b--估计表述的还是不清
自己用判断语句,然后truncate table.或者用动态SQL语句.if ...
set @sql = 'truncate table a'
else
...exec @sql
if
begin
end
else if
begin
end
IF OBJECT_ID('B') IS NOT NULL DROP TABLE B
IF OBJECT_ID('TA') IS NOT NULL DROP TABLE TA
GO
CREATE TABLE A(COL1 INT )
INSERT INTO A
SELECT 1
CREATE TABLE B(COL2 INT)
INSERT INTO B
SELECT 2
CREATE TABLE TA(TAG INT)
INSERT INTO TA
SELECT 1 UNION ALL SELECT 3
GO
DECLARE @SQL VARCHAR(MAX)
SELECT
@SQL=ISNULL(@SQL+'
','')+'TRUNCATE TABLE '+
CASE TAG
WHEN 1 THEN 'A' --表名
WHEN 2 THEN 'C'
WHEN 3 THEN 'B'
END
FROM TA
GROUP BY TAG
EXEC (@SQL)SELECT 'A',COUNT(1) FROM A
UNION ALL SELECT 'B',COUNT(1) FROM B
/*
A 0
B 0
*/