标签: sql

236
推荐指数
7
解决办法
60万
查看次数

如何在设计表时实现一对一,一对多和多对多关系?

任何人都可以解释如何在设计带有一些示例的表时实现一对一,一对多和多对多的关系吗?

sql oracle database-design

236
推荐指数
4
解决办法
26万
查看次数

需要列出SQL Server数据库中具有表名和表模式的所有触发器

我需要使用表名和表的模式列出SQL Server数据库中的所有触发器.

我几乎在这里:

SELECT trigger_name = name, trigger_owner = USER_NAME(uid),table_schema = , table_name = OBJECT_NAME(parent_obj),
  isupdate = OBJECTPROPERTY( id, 'ExecIsUpdateTrigger'), isdelete = OBJECTPROPERTY( id, 'ExecIsDeleteTrigger'),
  isinsert = OBJECTPROPERTY( id, 'ExecIsInsertTrigger'), isafter = OBJECTPROPERTY( id, 'ExecIsAfterTrigger'),
  isinsteadof = OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger'),
  [disabled] = OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') 
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
WHERE type = 'TR'
Run Code Online (Sandbox Code Playgroud)

我只需要获取表的模式.

sql t-sql database sql-server triggers

235
推荐指数
8
解决办法
41万
查看次数

SQL Server SELECT INTO @variable?

我在我的一个Sql(2008)存储过程中有以下代码执行完全正常:

    CREATE PROCEDURE [dbo].[Item_AddItem]
        @CustomerId uniqueidentifier,
        @Description nvarchar(100),
        @Type int,
        @Username nvarchar(100),
    AS
    BEGIN

        DECLARE @TopRelatedItemId uniqueidentifier;
        SET @TopRelatedItemId = 
        (
           SELECT top(1) RelatedItemId 
           FROM RelatedItems 
           WHERE CustomerId = @CustomerId
        ) 

        DECLARE @TempItem TABLE
        (
            ItemId uniqueidentifier,
            CustomerId uniqueidentifier,
            Description nvarchar(100),
            Type int,
            Username nvarchar(100),
            TimeStamp datetime
        );

        INSERT INTO Item
        OUTPUT INSERTED.* INTO @TempItem
        SELECT NEWID(), @CustomerId, @Description, @Type, @Username, GETDATE()

        SELECT
            ItemId,
            CustomerId,
            @TopRelatedItemId,
            Description,
            Type,
            Username,
            TimeStamp
        FROM
            @TempItem
END
GO
Run Code Online (Sandbox Code Playgroud)

所以你们的问题是有可能做一些事情:

DECLARE @TempCustomer TABLE
(
   CustomerId …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

235
推荐指数
4
解决办法
75万
查看次数

SQL键,MUL与PRI对比UNI

MySQL中的MUL,PRI和UNI有什么区别?

我正在使用以下命令处理MySQL查询:

desc mytable; 
Run Code Online (Sandbox Code Playgroud)

其中一个字段显示为MUL键,其他字段显示为UNI或PRI.

我知道如果一个密钥是PRI,那么每个表只能有一个记录与该密钥相关联.如果密钥是MUL,这是否意味着可能存在多个关联记录?

这是mytable的回应.

+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| courseid  | int(11) | YES  | MUL | NULL    |       | 
| dept      | char(3) | YES  |     | NULL    |       | 
| coursenum | char(4) | YES  |     | NULL    |       | 
+-----------+---------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

mysql sql key

234
推荐指数
4
解决办法
22万
查看次数

Oracle SQL:使用另一个表中的数据更新表

表格1:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf
Run Code Online (Sandbox Code Playgroud)

表2:

id    name    desc
-----------------------
1     x       123
2     y       345
Run Code Online (Sandbox Code Playgroud)

在oracle SQL中,如何运行可以使用表2更新表1 并使用相同的sql更新查询?所以我得到的最终结果是namedescid

表格1:

id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf
Run Code Online (Sandbox Code Playgroud)

问题来自更新一个表与来自另一个表的数据,但专门针对oracle SQL.

sql oracle sql-update

234
推荐指数
5
解决办法
90万
查看次数

NOT IN子句和NULL值

当我得到不同的记录计数时,出现了这个问题,我认为是使用not in where约束的相同查询,另一个是a left join.not in约束中的表有一个空值(坏数据),导致该查询返回0个记录的计数.我有点理解为什么,但我可以使用一些帮助来完全理解这个概念.

简单地说,为什么查询A返回结果但B不返回?

A: select 'true' where 3 in (1, 2, 3, null)
B: select 'true' where 3 not in (1, 2, null)
Run Code Online (Sandbox Code Playgroud)

这是在SQL Server 2005上.我还发现调用set ansi_nulls off导致B返回结果.

sql t-sql sql-server null notin

233
推荐指数
10
解决办法
26万
查看次数

Oracle数据库中是否有任何布尔类型?

Oracle数据库中是否有任何布尔类型,类似于BITMs SQL Server中的数据类型?

sql database oracle boolean sqldatatypes

233
推荐指数
8
解决办法
31万
查看次数

MySQL OPTIMIZE所有表?

MySQL有一个OPTIMIZE TABLE命令,可用于回收MySQL安装中未使用的空间.有没有办法(内置命令或公共存储过程)为数据库和/或服务器安装中的每个表运行此优化,或者这是您必须自己编写脚本的东西?

mysql sql

233
推荐指数
8
解决办法
32万
查看次数

尝试插入时,错误,字符串或二进制数据将被截断

我正在运行data.bat文件,其中包含以下行:

Rem Tis batch file will populate tables

cd\program files\Microsoft SQL Server\MSSQL
osql -U sa -P Password -d MyBusiness -i c:\data.sql
Run Code Online (Sandbox Code Playgroud)

data.sql文件的内容是:

   insert Customers
            (CustomerID, CompanyName, Phone)
             Values('101','Southwinds','19126602729')
Run Code Online (Sandbox Code Playgroud)

还有8个类似的行用于添加记录.

当我跑这跟start> run> cmd> c:\data.bat,我收到此错误信息:

1>2>3>4>5>....<1 row affected>
Msg 8152, Level 16, State 4, Server SP1001, Line 1
string or binary data would be truncated.

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>
Run Code Online (Sandbox Code Playgroud)

此外,我显然是一个新手,但是做什么Level #,并且 …

sql sql-server

232
推荐指数
10
解决办法
74万
查看次数