2016-12-30 72 views
2

我試着這樣做:SQL-使表名的字符串,包含GETDATE

select * into 'DataBackup'+convert(varchar(10),getdate(),112)+'byMike' from SomeTable 

但它返回一個錯誤。我也試過這一個,但無濟於事:

select * into 
(select 'DataBackup'+convert(varchar(10),getdate(),112)+'byMike') 
from 
SinavSorulari 

基本上,我試圖讓一個字符串,上面寫着:DataBackup20161230byMike,我想用用它`SELECT * INTO。我可以這樣做嗎?

感謝。

+0

提示:你一般最好讓一個**實際備份**。如果您嘗試「恢復」這種「手動」備份,可能會出現併發症。僅舉幾例:觸發器,標識列,時間戳/行轉換列。當然,事實上你很容易包含當前日期,這強烈暗示你不認爲你的'手動備份'是非常特殊的。結論是,你預計使用它比你應該更頻繁! ***相反使用定期備份*** –

回答

1

試試這個:

declare @query varchar(max) 
set @query='select * into DataBackup'+convert(varchar(10),getdate(),112)+'byMike from some_table ' 
exec (@query) 
+0

工作!謝謝! – Ugur

0
declare @tablename = 'DatabaseBackup'+convert(varchar(10),getdate(),112)+'byMike' 

declare @yoursourcetable = 'Mytable' 

declare @selectsql 
set @selectsql='select * into '+ @tablename +' from '[email protected] 

sp_executesql (@selectsql) 

我還沒有測試,但應該工作