單個資料庫多張表的操作

2022-03-07 16:50:50 字數 1981 閱讀 1040

有時候我們做統計需要給每個店鋪動態建立一張表用來統計訪問資料,但是隨著時間推移,到時候我們有可能需要給這些表新增乙個字段或是查詢資料什麼的。

表在實際專案中會多達上千張。

我之前有寫了一些sql語句在這邊分享一下。

1. 給所有的表新增乙個欄位isfacebook欄位。這邊是操作735張表。

1

declare

@iint

select@i=

12declare

@sql

varchar(100)

3declare

@tablename

varchar(50)

4while

@i<=

7355

begin

6set

@tablename='

visitlog'+

cast(@i

asvarchar(50))

7set

@sql='

alter table '+

@tablename+'

add isfacebook bit default 0 not null'8

ifexists(select

*from sysobjects where name =

@tablename)

9exec(@sql)

1011

set@i=@i

+112end

2. 查詢所有表中記錄數最多的店鋪id。這邊是假設操作1700張表。

1

declare

@iint

select@i=

12declare

@shopid

intselect

@shopid=1

3declare

@count

int4

declare

@maxcount

intselect

@maxcount=0

5declare

@sql

nvarchar(50)

6declare

@tablename

nvarchar(50)78

while

@i<=

1700

9begin

1011

set@tablename='

visitlog'+

cast(@i

asnvarchar(50))

12set

@sql='

select @count = count(*) from '+

@tablename

1314

ifexists(select

*from sysobjects where name =

@tablename)

15begin

16exec sp_executesql @sql,n'

@count int output

', @count output

17if

@count

>

@maxcount

18begin

19set

@maxcount

=@count

20set

@shopid=@i

21end

22end

2324

set@i=@i

+125end

2627

print

@maxcount

28print

@shopid

我想有了上面這兩個寫法,做其他操作只要稍微做下改動**就可以了。

不知道其他人做類似的事情也是不是寫sql語句來執行還是有其他工具可以完成?

單個資料庫備份指令碼

單個資料庫備份指令碼 vi mysqlback.sh bin sh date date y m d olddate date y m d d 7 days bd user root db passwd 123456 db name test mkdir usr local apache back d...

儲存過程 迴圈建立多張表 和 多個資料庫

建立所有資料庫 呼叫 call create databases znke z log 0,128 引數說明 1 要建立的資料庫字首 2 目標資料庫字尾最小數 3 目標資料庫字尾最大數 資料庫總數量 create procedure create databases in db pre varcha...

mongo針對單個資料庫 或表進行簡單的遷移

記錄一次將mongo a資料庫的一張表遷移到b資料庫中,主要使用到mongo中mongodump和mongorestore命令 引數 說明 h mongo 所在伺服器位址,例如127.0.0.1 當然 可以指定埠號 127.0.01 27017 port 埠號 d 需要備份的資料庫例項 c需要備份的...