eug*_*220 0 sql sql-server sql-server-2008
我当前的代码如下所示(不起作用).我想创建一个表格,其标题为cor_ @ dt,其中@dt是所选日期参数(在本例中为2013年8月14日)
USE [dWA_NSCC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- exec [CORP\Eng].[No_Indx] '8/14/2013', '1'
ALTER PROCEDURE [CORP\Eng].[No_Indx]
(@dt datetime, @numb int)
AS
BEGIN
DROP TABLE @dt
CREATE TABLE @dt
(
ticker varchar(50),
no_indx_cusip varchar(50),
benchmark_cusip varchar(50),
maxcor decimal(10,5),
regcoef decimal(10,5),
dt_pnts int
)
... some more code
Run Code Online (Sandbox Code Playgroud)
好吧,暂时忘记这闻起来非常非常糟糕,这段代码会创建一个名为的表08/14/2013.cor
.请注意,在引用它的所有代码中,因为它以数字开头并包含错误字符,所以您必须使用[square brackets]
该名称.
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'CREATE TABLE ' + QUOTENAME(CONVERT(CHAR(10), @dt, 101) + '.cor')
+ '
(
ticker varchar(50),
...
);';
EXEC sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)
一个更好的设计是使一个表有一个额外的列(可能作为聚集索引)然后你可以插入你的压力测试信息一天,那天的查询可以来自同一个表查询另一天.