-1

「tblProducts」という SQL Server テーブルがあります。

時々、次の単純なクエリでコピーを作成して、このテーブルをバックアップします。

SELECT *
INTO [test01].[dbo].[tblProducts_20141206]
FROM [test01].[dbo].[tblProducts]

バックアップを作成するたびに、テーブル名に日付が含まれます。

この種のクエリを毎週 1 回実行する SQL ジョブを作成したいと考えています。

バックアップされたテーブル名を[tblProducts_todaysDate]のように命名できるようにするために、ストアドプロシージャまたは変数を宣言してこれを達成することは可能ですか?

ありがとう。

4

2 に答える 2

0

Dynamic SQL日付を追加したテーブル名を作成する必要があります。

CREATE PROC usp_createtable( @tablename VARCHAR(20), 
                 @Dbname    VARCHAR(20), 
                 @SchemaName VARCHAR(20)) 
AS 
  BEGIN 
    DECLARE @sql NVARCHAR(max) 
    SET @sql =' SELECT * INTO '+@Dbname+'.'+@SchemaName+'.'+@tablename+'CONVERT(VARCHAR(8), GETDATE(), 112) FROM '+@Dbname+'.'+@SchemaName+'.'+@tablename'' 
    EXEC sp_executesql 
      @sql 
  END
于 2014-12-07T01:51:50.343 に答える
0

SP を使用している場合は、次のようなことができます。

 CREATE PROC sp_createATable
 @name        VARCHAR(20) AS
 CREATE TABLE @name
 ...
 do your insert

または、必要に応じて SP なし:

 DECLARE @name varchar(20)
 SET @name = 'tblName' + SELECT CONVERT(VARCHAR(8), GETDATE(), 112) AS [YYYYMMDD]
 CREATE TABLE @name
 ...
 do your insert
于 2014-12-07T00:28:25.067 に答える