标签: sql-server-2005

建议的从SQL Server 2008同步/备份/恢复到SQL Server 2005的方法是什么

我的开发机器上只有SQL Server 2008(开发版)

我的托管公司只提供SQL Server 2005(我没有对此数据库的直接连接访问权限)

我只是想知道最好的方法是什么:

  1. 将initlal DB结构和数据投入生产.
  2. 并在将来保持任何结构变化/数据变化同步.

据我所知......

  • 复制 - 不是选项,因为我无法连接到生产数据库.

  • 恢复备份 - 不是一个选项,因为据我所见,您无法从2008年导出可恢复的数据库(即使在2005兼容模式下设置2008 DB),恢复生产也没有意义无论如何,在我的开发版本的顶部.

  • 转储我的2008数据库中的所有脚本,从2008 - > 2005将我的开发还原到机器,然后从脚本重新创建数据库,然后使用备份和恢复将初始数据库投入生产,然后通过Web面板运行脚本那一点起

  • 转储我的2008数据库中的所有脚本,并从生产中的脚本生成整个2005数据库.然后从那时起通过Web面板运行脚本

  • 使用最后两个选项,我可能需要使用一些工具(我认为存在于Web上)编写所有数据插入的脚本

还有其他可能的解决方案,我没有考虑.

sql-server backup sql-server-2005 restore sql-server-2008

0
推荐指数
1
解决办法
203
查看次数

SQL查询优化

我的SQL查询有问题,需要时间从数据库中获取所有记录.任何身体帮助我.以下是数据库示例:

order(order_id, order_nm)
customer(customer_id, customer_nm)
orderDetail(orderDetail_id, order_id, orderDate, customer_id, Comment)
Run Code Online (Sandbox Code Playgroud)

我想获得最新的客户和订单详细信息.
这可能是解决方案:

我创建了一个GetLatestOrderByCustomer(CusID)函数来获取最新的客户信息.

CREATE FUNCTION [dbo].[GetLatestOrderByCustomer]
(
    @cus_id int
)
RETURNS varchar(255)
AS
BEGIN
    DECLARE @ResultVar varchar(255)

    SELECT @ResultVar = tmp.comment
    FROM 
    (
        SELECT TOP 1 orderDate, comment
        FROM orderDetail
        WHERE orderDetail.customer_id = @cust_id
    ) tmp


    -- Return the result of the function
    RETURN @ResultVar

END
Run Code Online (Sandbox Code Playgroud)

下面是我的SQL查询

SELECT 
      customer.customer_id
    , customer.customer_nm
    , dbo.GetLatestOrderByCustomer(customer.customer_id)
FROM Customer
    LEFT JOIN orderDetail
        ON orderDetail.customer_id = customer.customer_id
Run Code Online (Sandbox Code Playgroud)

运行该功能需要时间.有人可以建议我任何解决方案,使其更好吗?

sql t-sql sql-server sql-server-2005

0
推荐指数
1
解决办法
153
查看次数

如何在SQL Server 2005中不使用数据透视表将一堆行转换为聚合列?

这是一个场景:我有一个表记录了user_id,module_id以及查看模块的日期/时间.

例如.

Table: Log
------------------------------
User_ID  Module_ID   Date
------------------------------
1       red         2001-01-01
1       green       2001-01-02
1       blue        2001-01-03
2       green       2001-01-04
2       blue        2001-01-05
1       red         2001-01-06
1       blue        2001-01-07
3       blue        2001-01-08
3       green       2001-01-09
3       red         2001-01-10
3       green       2001-01-11
4       white       2001-01-12
Run Code Online (Sandbox Code Playgroud)

我需要得到一个结果集,其中user_id为第1列,然后是每个模块的列.然后行数据是user_id以及用户查看每个模块的次数.

例如.

---------------------------------
User_ID  red green   blue    white
---------------------------------
1       2   1       2       0
2       0   1       1       0
3       1   2       1       0
4       0   0       0       1
Run Code Online (Sandbox Code Playgroud)

我最初认为我可以用PIVOT做到这一点,但没有骰子; 数据库是在SQL Server 2005中运行的已转换的SQL Server 2000数据库.我无法更改兼容级别,因此数据库已关闭. …

sql sql-server pivot sql-server-2005

0
推荐指数
1
解决办法
1305
查看次数

来自TextBox的ADO.NET参数

我试图在我的C#Winforms应用程序中从SQL Server 2005调用参数化存储过程.我从TextBoxeslike添加参数(其中有88个):

cmd.Parameters.Add("@CustomerName", SqlDbType.VarChar, 100).Value = CustomerName.Text;
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

"System.InvalidCastException: Failed to convert parameter value
 from a TextBox to a String. ---> System.InvalidCastException:
 Object must implement IConvertible."
Run Code Online (Sandbox Code Playgroud)

抛出错误的行是我调用查询时:

cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

我也尝试在TextBoxes上使用.ToString()方法,无论如何看起来毫无意义,并抛出相同的错误.我错误地传递了参数吗?

c# parameters ado.net stored-procedures sql-server-2005

0
推荐指数
1
解决办法
1539
查看次数

如何从SSIS Excel文件名解析日期

我想使用foreach容器遍历匹配诸如“ Filename_MMYYYY.xls”之类的文件夹。这很容易做到;但我似乎找不到从文件名解析MMYYYY并将其添加到变量(或某些变量)中的方法,该变量可用作我的DimDate表的查找字段。使用平面文件数据源似乎可行,但不能使用excel连接。我正在使用Visual Studio2005。请帮忙!

sql ssis sql-server-2005

0
推荐指数
1
解决办法
6545
查看次数

如何使用SQL Server 2005中的Select语句计算两个字段?

表中的总记录是10.

Select count(ID) from table1 where col1 = 1 (Result is 8)
Select count(ID) from table1 where col1 = 0 (Result is 2)
Run Code Online (Sandbox Code Playgroud)

所以它是一个相同的表,但计数是基于不同的条件.如何使用一个select语句获得两个结果(计数)?

此外,性能是一个大问题.

PS:我正在使用存储过程...

编辑:我想清除上面的查询只是一个大SP逻辑的一部分(至少对我来说).由于我得到了以下答案,它给出了另一种想法,以不同的方式实现它.我上面的问题现在有点改变了......请帮忙吗?它是一个具有真或假状态的col(bool类型).

sql t-sql select stored-procedures sql-server-2005

0
推荐指数
1
解决办法
295
查看次数

sql - 如何强制执行两列约束?

我在表中有一个CustomerID列和一个EffectiveDate列.

我需要这两者的组合才是独一无二的.

但是,我已经在自动编号的整数列上有一个主键.

什么是实现目标的好方法?

谢谢

sql sql-server-2005 sql-server-2008

0
推荐指数
1
解决办法
69
查看次数

SQL Server 2005中是否有自然连接替换?

我有两个表,我想通过ID字段加入.我试图用这个"INNER JOIN".一切都会好,但有两个问题:

  1. 结果我收到两次列ID.
  2. 我必须省略指定应在select语句下显示的列.我想用那里*.

我认为其他sql-s有类似自然连接的东西,这可能(或不是?)是我的问题的答案.不幸的是,SQL Server(2005)中没有类似的连接.有人知道有什么好的替代品吗?

sql sql-server sql-server-2005

0
推荐指数
1
解决办法
648
查看次数

C#DateTime类和数据库中的日期时间

我有以下问题.

我有一些的DateTime属性的对象,并在数据库中的表,我储存的所有对象,在SQL Server中我要存储日期时间数据类型的一些列的日期时间属性,但在SQL Server日期时间的格式是不同的c#中的DateTime类,我得到一个sql异常,说"无法解析DateTime".我知道如何通过使格式YYYY-MM-DD解决这个但这是正确的和最佳的解决方案,这样做吗?

public void UpdateInvitation(string ownerId, string couponKey, string status, string invitedEmail, DateTime? sentDate, DateTime? redeemedDate)
    {
        using (var con = new SqlConnection(this.ConnectionString))
        {
            try
            {
                con.Open();
                var command =
                        new SqlCommand(
                                "UPDATE INVITATIONS SET Status='@status', InvitedEmail='@invitedEmail', SentDate='@sentDate', RedeemDate='@redeemedDate' WHERE CouponKey='@CouponKey' AND OwnerId='@OwnerId'");
                var ownerIdParam = new SqlParameter("@ownerId", ownerId);
                var couponKeyParam = new SqlParameter("@couponKey", couponKey);
                var statusParam = new SqlParameter("@status", status);
                var invitedEmailParam = new SqlParameter("@invitedEmail", invitedEmail);
                var sentDateParam = new SqlParameter("@sentDate", sentDate.Value) { SqlDbType = SqlDbType.DateTime }; …
Run Code Online (Sandbox Code Playgroud)

c# sql database datetime sql-server-2005

0
推荐指数
1
解决办法
1269
查看次数

如何在SQL Server表中获取列的创建日期?

我使用以下查询来获取有关SQL表的列的信息:

SELECT * from information_schema.columns 
WHERE table_name = 'userpersonalinformation'
Run Code Online (Sandbox Code Playgroud)

但是我找不到关于每列创建日期的任何数据......有没有办法在表中获取列的创建日期?

sql database sql-server-2005

0
推荐指数
1
解决办法
1946
查看次数