Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用sql以编程方式将数据加载到表中_Sql_Sql Server_Tsql - Fatal编程技术网

如何使用sql以编程方式将数据加载到表中

如何使用sql以编程方式将数据加载到表中,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图加载过去两年的一些数据,这些数据几乎是静态的,这就是我的意思: Date UserName Hours 1/1/2014 Mike01 10 1/2/2014 Mike01 10 1/3/2014 Mike01 10 1/4/2014 Mike01 10 . . 7/30/2015 Mike01 10 所以用户名和时间总是一样的,我也不想包括周末。我已经花了这么多时间,但无法理解

我试图加载过去两年的一些数据,这些数据几乎是静态的,这就是我的意思:

Date         UserName    Hours
1/1/2014     Mike01      10
1/2/2014     Mike01      10
1/3/2014     Mike01      10
1/4/2014     Mike01      10
.
.
7/30/2015     Mike01     10

所以用户名和时间总是一样的,我也不想包括周末。我已经花了这么多时间,但无法理解,所以请帮助。谢谢

试试这样的东西

因为这里的最大递归可以是731,所以我使用递归CTE来生成日期。还有其他选项可以生成日期,如理货表

WITH cte 
     AS (SELECT Cast(Cast(Year(getdate())-1 AS CHAR(4)) + '-01-01' AS DATE) AS dates 
         UNION ALL 
         SELECT Dateadd(dd, 1, dates) 
         FROM   cte 
         WHERE  dates < dateadd(dd,-1,CONVERT(DATE, Dateadd(dd, -( Day(Getdate()) - 1 ),Getdate())))
        ) 
SELECT dates, 
       username, 
       hours 
FROM   cte 
       CROSS JOIN (SELECT 'Mike01' AS username, 
                          10       AS hours) A 
Where datename(weekday,dates) not in ('saturday','sunday')
option (maxrecursion 0)
注意:在演示中,我从上个月的第一天开始计算日期,这应该可以

IF OBJECT_ID('UsersTable') IS NULL
    CREATE TABLE UsersTable ([Date] DATE, UserName VARCHAR(250), [Hours] TINYINT)
GO

DECLARE @Startdt DATETIME = '2013-07-31'
DECLARE @UsersTable TABLE ([Date] DATE, UserName VARCHAR(250), [Hours] TINYINT)

WHILE @Startdt <= GETDATE()
BEGIN
    IF DATENAME(weekday, @Startdt) NOT IN ('saturday','sunday')
    BEGIN
        INSERT INTO @UsersTable
        SELECT @Startdt
            ,'Mike01'
            ,10
    END

    SET @Startdt = DATEADD(dd, 1, @Startdt)
END

INSERT INTO UsersTable
SELECT *
FROM @UsersTable vt
WHERE NOT EXISTS (
        SELECT 1
        FROM UsersTable ut
        WHERE ut.[Date] = vt.[Date]
        )

SELECT *
FROM UsersTable

DROP TABLE UsersTable

因此,数据已经在一个表中,并且您正在尝试将其传输到另一个表中?您尝试了什么?您是在尝试将数据从一个文件插入到数据库中,还是将数据从一个表插入到另一个表中?您遇到了什么错误?你能展示一下到目前为止你努力的一些成果吗?