小编Joe*_*eph的帖子

MSSQL:如何找到所有具有引用特定table.column的外键并具有这些外键值的表?

我有一个表,其主键在其他几个表中作为外键引用.例如:

CREATE TABLE `X` (
  `X_id` int NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY  (`X_id`)
)
CREATE TABLE `Y` (
  `Y_id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `X_id` int DEFAULT NULL,
  PRIMARY KEY  (`Y_id`),
  CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
CREATE TABLE `Z` (
  `Z_id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `X_id` int DEFAULT NULL,
  PRIMARY KEY  (`Z_id`),
  CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
Run Code Online (Sandbox Code Playgroud)

现在,我不知道数据库中有多少表包含外键到X,如表Y和Z.是否有可用于返回的SQL查询:1.具有外键到X AND的表的列表2.这些表中的哪些实际上具有外键中的值

谢谢!

sql-server sql-server-2008

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

如何在sql server中对行号进行内连接

SQL Server 2008

两张桌子:

表A有以下数据:

RowA
RowB
RowC
RowD
Run Code Online (Sandbox Code Playgroud)

表B有以下数据:

Row4
Row3
Row2
Row1
Run Code Online (Sandbox Code Playgroud)

我想获得以下输出:

RowA Row1
RowB Row2
RowC Row3
RowD Row4
Run Code Online (Sandbox Code Playgroud)

两个表之间唯一的共同值是行号

我当然可以单独获取数据:

SELECT val
FROM A
ORDER BY val

SELECT val
FROM B
ORDER BY val
Run Code Online (Sandbox Code Playgroud)

但是我如何加入行号呢?

如果我没有订单,但只是希望按顺序排列的行怎么办?

RowA Row4
RowB Row3
RowC Row2
RowD Row1
Run Code Online (Sandbox Code Playgroud)

就像在加入一样

SELECT val
FROM A

SELECT val
FROM B
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

19
推荐指数
1
解决办法
3万
查看次数

在microsoft sql server 2008中运行查询之前如何知道将影响多少行

我读过一些关于ROWCOUNT的内容,但它并不是我想要的.从我的理解rowcount说明运行查询后受影响的行数.我正在寻找的是在运行查询之前知道.这可能吗?

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

13
推荐指数
2
解决办法
8136
查看次数

检查日期时间是否在当前日期

我正在使用SQLServer 2008.我有一个表X,字段Y是日期时间格式.在我的查询的WHERE语句中,我只想保留字段Y的日期等于当前日期的行.

我搜索过互联网,但找不到适用于SQLServer /的示例

谢谢您的帮助!

sql t-sql sql-server where-clause sql-server-2008

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

制作动态选择案例(vb)

我希望我的一个案例是一个动态字符串,因为在我的表中这些值部分改变,除了开头的代码"2061",所以如何使我的代码做类似于我在查询时查找的内容" ...像'2061%'这里是我的代码

Function GetResponse(val As String) As String
        Select Case val
            Case "2061"
                Return "Opted Out"
            Case "00"
                Return ""
            Case Else
                Return "Other"
        End Select
    End Function
Run Code Online (Sandbox Code Playgroud)

sql vb.net select-case

5
推荐指数
1
解决办法
685
查看次数

在MySQL中插入或复制表

我想实现更新数据:我有产品和数量......如果产品已经在数据库中,我需要数量与旧数量加上新数量例如:我已经有3个苹果我想要再插入2个苹果.结果应为productname = apple和quantity = 5.对不起,我的英语很差,希望很清楚我的问题.

INSERT INTO table1 (productname, quantity) VALUES (’apple’, ‘2’)
ON DUPLICATE KEY UPDATE ptoductname; // <-- not sure
Run Code Online (Sandbox Code Playgroud)

请帮忙!

php mysql database

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

在纯SQL中对行进行分组

我有一个包含日期和数字列的表,如下所示:

date        Number 
1-1-2012    1
1-2-2012    1
1-3-2012    2
1-4-2012    1

我想创建一个SQL查询,将具有相同Number的行分组并采用最小日期.仅当值iof Number与上一行/下一行相同时,才会发生分组.所以,结果是

date        Number 
1-1-2012    1
1-3-2012    2
1-4-2012    1

.

Cheerz,Lordkain

sql sql-server grouping

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

MySQL无法使用外键创建表

CREATE  TABLE `assessmentbookdb`.`MCQs` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `MCQAnswer` VARCHAR(200) NOT NULL ,
  `QuestionID` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `QuestionID` (`QuestionID` ASC) ,
  CONSTRAINT `QuestionID`
    FOREIGN KEY (`QuestionID` )
    REFERENCES `assessmentbookdb`.`Question` (`QuestionID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

消息日志:

错误1005:无法创建表'assessmentbookdb.mcqs'(错误号:121)SQL语句:

CREATE  TABLE `assessmentbookdb`.`MCQs` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `MCQAnswer` VARCHAR(200) NOT NULL ,
  `QuestionID` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `QuestionID` (`QuestionID` ASC) ,
  CONSTRAINT …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys

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