1. 程式人生 > >sql 迴圈各表,刪除資料 動態SQL語句

sql 迴圈各表,刪除資料 動態SQL語句

declare @i int
declare @tabname varchar(30)
declare @sqlstr nvarchar(300) 
declare @TimeBegin numeric(15)


set @i = 1
while @i<64
begin
  set @TimeBegin = 1338530131
  set @tabname = 'tablename'
  set @tabname = @tabname + convert(varchar(20),@i)
  set @sqlstr = 'delete from ' +  @tabname + ' where column_Time<'  + convert(varchar(30),@TimeBegin) 
  Exec(@sqlstr)
  set @
[email protected]
+1

end

動態SQL語句

 
1 :普通SQL語句可以用Exec執行 


eg: Select * from tableName 
Exec('select * from tableName') 
Exec sp_executesql N'select * from tableName' -- 請注意字串前一定要加N 


2:欄位名,表名,資料庫名之類作為變數時,必須用動態SQL 


eg: 
declare @fname varchar(20) 
set @fname = 'FiledName' 
Select @fname from tableName -- 錯誤,不會提示錯誤,但結果為固定值FiledName,並非所要。 
Exec('select ' + @fname + ' from tableName') -- 請注意 加號前後的 單引號的邊上加空格 


當然將字串改成變數的形式也可 
declare @fname varchar(20) 
set @fname = 'FiledName' --設定欄位名 


declare @s varchar(1000) 
set @s = 'select ' + @fname + ' from tableName' 
Exec(@s) -- 成功 
exec sp_executesql @s -- 此句會報錯 


declare @s Nvarchar(1000) -- 注意此處改為nvarchar(1000) 
set @s = 'select ' + @fname + ' from tableName' 
Exec(@s) -- 成功 
exec sp_executesql @s -- 此句正確 


3. 輸出引數 
declare @num int, 
@sqls nvarchar(4000) 
set @sqls='select count(*) from tableName' 
exec(@sqls) 
--如何將exec執行結果放入變數中? 


declare @num int, 
@sqls nvarchar(4000) 
set @sqls='select @a=count(*) from tableName ' 
exec sp_executesql @sqls,N'@a int output',@num output 
select @num 

相關推薦

sql 迴圈刪除資料 動態SQL語句

declare @i int declare @tabname varchar(30) declare @sqlstr nvarchar(300)  declare @TimeBegin numeric(15) set @i = 1 while @i<64 begin

SQL語句基礎1:建立和刪除資料庫插入資料並加入適當約束

1.建立圖書管理資料庫 create database bookManager on (     name=bookManager_data,     filename='D:\SQL\bookManager_data.mdf',     size=5MB,     maxs

oracle資料庫中sql語言建立更新刪除資料

一sql語言的分類 sql語言分為4類:DQL(資料查詢語言),DML(資料操縱語言),資料定義語言(DDL),資料控制語言(DCL)。 二資料定義語言 資料定義語言用於建立,刪除,修改資料庫中的各種物件,物件比如-表,索引,檢視,同義詞、聚簇等 CREATETABLE/

建庫新增資料 SQL命令

  create database ssm default character set utf8; use ssm; create table flower( id int(10) primary key auto_increment comment'編號', name

刪除中重複資料sql

一方法: 查詢表中重複資料  select * from employee where employeeId in (select employeeId from employee group by employeeId having count(employeeId) &

C++資料結構與STL--有序刪除重複項

template<typename T>//假設容器為listvoid uniq(list<T>& lst) {  auto beg=lst.begin();  auto end=lst.end();  T currVal; //記錄當前表資料值 while(beg!=end)

sql批量操作資料庫刪除刪除資料庫刪除儲存過程刪除檢視

--刪除所有表的外來鍵約束-- DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] dropconstraint ['+name+']; ' from syso

mysql儲存過程迴圈遍歷sql結果集並執行動態sql

/* 將其他幾張表資料複製到一張總表中 */ DROP PROCEDURE IF EXISTS sp_customer; CREATE PROCEDURE sp_customer() BEGIN -- 需要執行的SQL語句 DECLARE v_sql_1 VARCH

Oracle 觸發器 插入更新刪除,資料同步同步

create or replace trigger UserToTemp after insert or update or delete on user_info for each row declare     integrity_error exception;     errno           

SQL語言進行復雜查詢:對中的資料進行不同條件的連線查詢和巢狀查詢: 1)查詢每個學生及其選課情況; 2)查詢每門課的間接先修課

對各表中的資料進行不同條件的連線查詢和巢狀查詢: 1)查詢每個學生及其選課情況; 2)查詢每門課的間接先修課 3)將STUDENT,SC進行右連線 4)查詢有不及格的學生姓名和所在系 5)查詢所有成績為優秀(大於90分)的學生姓名 6)查詢既選修了2號課程又選修了3號課程的

Java連線HBASE資料庫建立一個刪除一張修改輸出插入修改資料刪除資料獲取顯示錶資訊過濾查詢分頁查詢地理hash

準備工作 1、建立Java的Maven專案 建立好的目錄結構如下: 另外注意junit的版本,最好不要太高,最開始筆者使用的junit4.12的,發現執行的時候會報錯。最後把Junit的版本改成4.7的之後,問題解決了。 編寫POM檔案 <

分別使用PreparedStatement和Statement對mysql資料庫進行建立增加資料查詢資料刪除資料過程

在使用eclipse工具編寫Java程式碼連線資料庫並對資料庫進行處理時,總會用到對資料的增刪改查操作。那麼這個 時候就用到了java自帶的sql庫中的PreparedStatement或者Statement了。 其實PreparedStatement和Statement使

sql添加列刪除修改列

數據庫 str alter 代碼 div lena lte eight 設計器 有時候,當數據庫裏面有數據了,再到設計器裏面刪除列,就刪不掉。只能用代碼刪除。 alter table tableName drop column columnName 添加列

Java鏈接HBASE數據庫創建一個刪除一張修改輸出插入修改數據刪除數據獲取顯示信息過濾查詢分頁查詢地理hash

can charat nfa true 目錄結構 dfa byte sin extra 準備工作 1、創建Java的Maven項目 創建好的目錄結構如下: 另外註意junit的版本,最好不要太高,最開始筆者使用的junit4.12的,發現運行的時候會報錯。最後把Junit

Mysql兩張相同ID匹配輸出到新刪除匹配

mysql匹配數據0x00:前言。有兩張表,一張表字段是ID-Email,另一張表字段是ID-PWD,想用SQL腳本把這兩張表合並合並,因為有相同的ID才可以匹配。0x01:示例。一個字段ID:Email另一個字段是ID:PWD想要的輸出就結果ID:Email:PWD0x02:Mysql語句。註意:因為MyS

SQLALchemy之創建刪除

alc 創建 all data- unique prim nullable 利用 cad 1、創建引擎 "數據庫+第三方模塊://用戶名:密碼@數據庫服務端IP:端口號/數據庫名?編碼" engine = create_engine( "mysql+p

SQL增加、修改、刪除資料

複製一個表 複製emp表 —— 新的表名稱為myemp CREATE TABLE myemp AS SELECT * FROM emp ; select * from tab; 檢視當前使用者所有表,可以看到myemp複製完畢 (一)增加資料 (1)插入一條新的資料 INSERT IN

SQL server 2008 新增刪除欄位

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

SQL Server 2008 資料庫誤刪除資料的恢復

關鍵字:SQL Server 2008, recover deleted records 背景:誤刪除資料。 SQL Server中誤刪除資料的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件: 1. 至少有一個誤刪除之前的資料庫完全備份。 2. 資料庫的恢

github二次上傳檔案分支檔案上傳刪除資料

看了太多GitHub入門教程,終於搞通了,樂在分享。 部分參考:第一個GitHub專案https://blog.csdn.net/wangyan_z/article/details/79148059 git上傳本地分支到github專案分支  https://blog.csdn.