标签: sql

如何使用SQL Server更新日期而不更改其时间?

我在Mytable中有一个名为StockDate的列,其DataType是DateTime.

所以我的表包含如下记录

    SID                StockDate
   -----              ------------
     1                 2011-10-02 09:44:41.170
     2                 2011-10-02 09:48:23.234
Run Code Online (Sandbox Code Playgroud)

在这里,我想仅将StockDate的日期更新为"2011-09-30".但时间应该是一样的.这该怎么做?我需要你的所有建议.

sql sql-server datetime sql-server-2005

11
推荐指数
1
解决办法
6780
查看次数

用于复合主键的外键

谢谢阅读.

是否可以将复合外键用作表的复合主键的一部分?

例如,假设我有两个表:

            CREATE TABLE DB.dbo.Partners
            (
                CONSTRAINT pk_Partners_Id
                PRIMARY KEY (Name, City, State, Country, PostalCode),

                Name                VARCHAR(100)
                                    NOT NULL,

                Address1            VARCHAR(100),

                Address2            VARCHAR(100),

                Address3            VARCHAR(100),

                City                VARCHAR(150)
                                    NOT NULL,

                State               CHAR(2)
                                    NOT NULL,

                Country             CHAR(2)
                                    NOT NULL,

                PostalCode          VARCHAR(16)
                                    NOT NULL,

                Phone               VARCHAR(20),

                Fax                 VARCHAR(20),

                Email               VARCHAR(256)
            )
Run Code Online (Sandbox Code Playgroud)

...然后在第二个表中,我想在第二个表的主键中引用外键:

            CREATE TABLE DB.dbo.PartnerContacts
            (
                CONSTRAINT pk_PartnerContacts_Id
                PRIMARY KEY (fk_PartnerContacts_PartnerId, FirstName, LastName, PhoneNumber, Email),

                CONSTRAINT fk_PartnerContacts_PartnerId
                FOREIGN KEY REFERENCES Partners(Name, City, State, Country, PostalCode),

                FirstName           VARCHAR(75)
                                    NOT NULL,

                MiddleName          VARCHAR(75),

                LastName …
Run Code Online (Sandbox Code Playgroud)

sql foreign-keys primary-key

11
推荐指数
1
解决办法
2万
查看次数

varchar(128)是否优于varchar(100)

快问.如果我将使用十进制字段限制或十六进制(例如16,32,64而不是10,20,50),从存储数据的角度来看是否重要?

我问,因为我想知道这是否与HDD上的集群有关?

谢谢!

sql database-design

11
推荐指数
1
解决办法
7240
查看次数

从任何sql语句生成db图

我正在使用DBArtisan 8.5.5并且它能够使用Build Query生成数据库图,它有一个很好的功能,可以自动加入,检测新添加的表上的潜在关系.因此,图表结果是一个SQL语句,因为它毕竟是一个查询生成器.

是否可以在DBArtisan中提供SQL语句并生成数据库图表?换句话说,反过来(给SQL生成图,而不是使用图表来生成SQL)?

如果没有这样的功能,是否有适用于Sybase DB的产品将提供所述功能?

sql ide diagram auto-generate dbartisan

11
推荐指数
1
解决办法
2万
查看次数

数据库错误:位置0没有行

我相信这个问题是在几个月前被问到的,但我相信我的情况有所不同,同样的规则也许不适用.

每次我执行此方法时都会弹出相同的错误.位置0没有行.如果我将[0]改为[1]或[15]; [1]等处没有行.这是否意味着我的数据库连接都没有?我应该写一些if语句来确定行是否在那里?

    public bool UpdateOrderToShipped(string order)
{
    orderNumber = order;
    string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
    string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
    SqlCommand comm = new SqlCommand(statement, connectionPCI);
    comm.Parameters.Add("SOPNUMBE", orderNumber);
    try
    {
        comm.Connection.Open();
        comm.ExecuteNonQuery();
        comm.Connection.Close();
    }
    catch(Exception e)
    {
        comm.Connection.Close();
        KaplanFTP.errorMsg = "Database error: " + e.Message;
    }

    statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
    comm.CommandText = statement;
    SqlDataAdapter da = new SqlDataAdapter(comm);
    DataTable dt = new DataTable();
    da.Fill(dt); …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server asp.net if-statement

11
推荐指数
1
解决办法
8万
查看次数

为每个网站用户(数千个)创建一个包含数千行的SQL表?

我们正在构建一个电子学习MultipleChoice工具,成千上万的用户将完成我们的测试.我们已有数千名订阅者参加我们的其他研讨会等,因此很可能还会有数千人完成MC测试.

现在,我们需要跟踪每个用户已回答的每个问题,他花了多长时间,是否正确(经过多少次尝试),如果没有,他给出了哪个错误答案,等等.真的很多数据.

现在,我们将有数千个问题和数千名用户.由于每个问题至少有4个答案,我们也想跟踪给出的错误答案,我的问题是:在这种特殊情况下,每个用户有一个表是否有意义?

我知道已经在这里询问了每用户表的问题(例如,这里),但我觉得这是一个不同的情况.

那么:一个包含数百万行或数千个包含数千行的表的表?

sql

11
推荐指数
1
解决办法
4782
查看次数

为什么Entity Framework的DbContext.Find()使用select top 2生成查询?

为什么Entity Framework的DbContext.Find()使用select top 2和派生表生成一个查询?根据定义,查询是通过主键查找的,主键应该是唯一的.

.net sql entity-framework-4.1

11
推荐指数
1
解决办法
3788
查看次数

我可以在同一个桌面上有两个不同的插入触发器吗?

它们似乎是被允许的,因为我可以看到我的插入触发器在表格下列出了不同的名称.这是常见的还是坏的做法?我正在使用SQL Server 2005

sql sql-server triggers sql-server-2005 insert-update

11
推荐指数
1
解决办法
2万
查看次数

如何在SQL Server 2008中将int转换为日期

我正在使用MS SQL Server 2008,并且在表中我将列idate作为日期但是以整数格式.但在查询中我希望以日期格式.是否可以将整数日期转换为正确的日期时间格式?

sql sql-server-2005 sql-server-2008

11
推荐指数
1
解决办法
12万
查看次数

Oracle:在存储过程中使用数据库链接:表或视图不存在

我目前有一个问题,我不能在存储过程中引用链接数据库中的表.我收到错误消息:

ORA-00942:表或视图不存在

以下是我在主机(运行oracle 10g)上设置数据库链接到远程数据库(运行oracle 11g)的步骤.这些步骤是准确的,但有些名称已被更改,但它们保持一致.

  1. 更新tnsnames.ora,添加一个新条目:

    REMOTE_DB =
        (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)
                       (HOST = 10.10.10.10)
                       (QUEUESIZE = 20)
                       (PORT = 1521)
            )
            (CONNECT_DATA =
                       (SERVICE_NAME = remote_service)
            )
        )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建数据库链接,作为稍后将创建和执行存储过程的用户:

    create database link remote_link
    connect to "remote_user"
    identified by "remote_pass"
    using 'REMOTE_DB';
    
    Run Code Online (Sandbox Code Playgroud)
  3. 通过选择证明数据库链接正在工作:

    select id from remote_table@remote_link;
    
    id
    --------------------------------------------------------------------------------
    8ac6eb9b-fcc1-4574-8604-c9fd4412b917
    c9e7ee51-2314-4002-a684-7817b181267b
    cc395a81-56dd-4d68-9bba-fa926dad4fc7
    d6b450e0-3f36-411a-ba14-2acc18b9c008
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建依赖于工作数据库链接的存储过程:

    create or replace
    PROCEDURE test_remote_db_link
    AS
    v_id varchar(50);
    BEGIN   
        select id into v_id from remote_table@remote_link where id = 'c9e7ee51-2314-4002-a684-7817b181267b';
        dbms_output.put_line('v_id : ' || …
    Run Code Online (Sandbox Code Playgroud)

sql database oracle stored-procedures dblink

11
推荐指数
1
解决办法
4万
查看次数