标签: sql

为什么不在子查询中出现"无效列名XYZ"错误; 虽然列名不在子查询表中?

当我运行此查询时

SELECT CustomerId FROM Stocks.dbo.Suppliers
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误.列名称'CustomerId'无效.此错误有效,因为Suppliers表中没有列CustomerId; 但是当我在子查询中使用相同的查询时,它不会给出任何错误.例如

SELECT * 
  FROM SomeOtherDb.dbo.Customer 
 WHERE CustomerId In( SELECT CustomerId 
                        FROM Stocks.dbo.Suppliers)
Run Code Online (Sandbox Code Playgroud)

在这里,我期待相同的错误"无效的列名称",但查询运行没有任何错误.

完全限定名称只是惯例,两个dbs都在同一台服务器上.

CustomerId确实存在于SomeOtherDb.dbo.Customer表中,但不存在于子查询中.

为什么会这样?这是子查询的东西吗?

谢谢.

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

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

修改在SQL Server中用作列默认值的函数

我们遇到了编码不良的SQL函数的问题(在现场工作正常,但在我们的测试环境中没有).此函数用于在许多表中提供默认值,尝试ALTER函数返回"无法更改###,因为它正被对象引用"错误.

有没有办法绕过这个错误信息?我能想到的唯一方法是尝试编写一个脚本,将其从每个默认情况下的表中删除,改变函数并在之后重新添加.

谢谢

sql t-sql constraints function

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

如何使用Inno Setup使用.sql脚本更新数据库

我想编译一个使用用户提供的凭据连接到远程数据库的设置,然后使用.sql脚本安装几个db组件.

可以使用Inno Setup吗?

更多细节:

我想要一个自定义表单,要求用户输入数据库地址和凭据,然后运行一个命令,该命令将执行将更新远程数据库服务器的sql脚本.

如果更新成功 - 请成功完成安装.

这是一个相当笼统的问题 - 我有很多自定义设置应该连接到不同的服务器/运行不同的脚本 - 我们的想法是构建一个提供此功能的通用表单.

sql inno-setup

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

结合SQL行

我有SQL Compact Database,其中包含一个IP包头的表.表格如下:

Table: PacketHeaders    

ID  SrcAddress  SrcPort  DestAddress  DestPort  Bytes
1   10.0.25.1   255      10.0.25.50   500       64
2   10.0.25.50  500      10.0.25.1    255       80
3   10.0.25.50  500      10.0.25.1    255       16
4   75.48.0.25  387      74.26.9.40   198       72
5   74.26.9.40  198      75.48.0.25   387       64
6   10.0.25.1   255      10.0.25.50   500       48
Run Code Online (Sandbox Code Playgroud)

我需要执行查询以显示在本地网络上进行的"对话".从A - > B开始的数据包是与来自B - > A的数据包相同的对话的一部分.我需要执行查询以显示正在进行的对话.基本上我需要的是这样的东西:

Returned Query:

SrcAddress  SrcPort  DestAddress  DestPort  TotalBytes  BytesA->B  BytesB->A
10.0.25.1   255      10.0.25.50   500       208         112        96
75.48.0.25  387      74.26.9.40   198       136         72         64
Run Code Online (Sandbox Code Playgroud)

如您所见,我需要查询(或一系列查询)来识别A-> B与B-> A相同并相应地分解字节计数.无论如何我不是SQL大师,但对此的任何帮助都将非常感激.

sql sql-server sql-server-ce

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

SQL Server从另一个表创建临时表

我期待创建一个临时表,在编译报表时用作中间表.

有点背景我将VB 6应用程序移植到.net

要创建表我可以使用...

SELECT TOP 0 * INTO #temp_copy FROM temp;
Run Code Online (Sandbox Code Playgroud)

这会创建一个空的temp副本,但它不会创建主键

有没有办法创建临时表加上约束?

我之后应该创建约束吗?

或者我最好只使用create table创建表,我不想这样做,因为表中有45列,它会填充大量不必要的过程.

该表是必需的,因为很多人可能同时生成报告,因此我不能使用单个中间表

sql t-sql sql-server

11
推荐指数
3
解决办法
6万
查看次数

在SQLite中创建条件SQL触发器

我正在尝试为sqlite编写一个触发器,并且遇到各种各样的问题.事实上,我认为我的真正问题在于我在sql语言中的糟糕背景.无论如何这里...

我有两个表Table1和Table2.Table1有一个名为time的列(64位整数时间).我需要一个触发器来监视Table1中插入的​​新行.如果Table1中有3行或更多行的时间大于X(以下示例中的硬编码值为120秒),我需要在Table2中插入一个新行.

这是我到目前为止(注意这不起作用)

CREATE TRIGGER testtrigger AFTER  
INSERT ON Table1 WHEN 
( 
   SELECT COUNT() AS tCount FROM
   ( 
     SELECT * FROM Table1 WHERE  
       time > (NEW.time - 120)  
   ) WHERE tCount > 3
) 
BEGIN 
   INSERT INTO Table2 (time, data) VALUES 
   (NEW.time, 'data1');  
END
Run Code Online (Sandbox Code Playgroud)

那些在SQL上比我更好的灵魂?

sql sqlite triggers

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

如何使用DB2限制DELETE中的行数?

当我在DB2表上删除带有SQL请求的行时,我想在敏感表上添加安全性.

我想模仿MySQL允许您限制SQL请求中删除的行数的方式.

基本上我想用DB2做这个:

DELETE FROM table WHERE info = '1' LIMIT 1
Run Code Online (Sandbox Code Playgroud)

有没有办法用DB2做到这一点?

sql db2 limit

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

如何确定sql结果集中行的位置?

我有一个SQL查询:

select id, name from table order by name
Run Code Online (Sandbox Code Playgroud)

结果如下:

52 arnold 
33 berta 
34 chris 
47 doris
52 emil
Run Code Online (Sandbox Code Playgroud)

对于给定的id = 47,我如何确定结果集中的位置?结果应该是4因为:

52 arnold
33 berta
34 chris
Run Code Online (Sandbox Code Playgroud)

在(47,doris)之前,id = 41在结果集中的第4个位置.

如何在SQL中执行此操作?怎么用HQL?在一个分页示例中,我是否必须执行2个语句,或者是否有一个解决方案,我可以准确检索包含id = 47的行的窗口?

postgreSQL和java

sql count

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

如何在SQL中使用LIKE条件和数字字段?

我正在使用此查询来获取一些特定数据:"select*from emp where emp_name LIKE's%'";

emp_nam是字符字段,如何在数字字段中使用相同的逻辑条件?就像是:

"select*from emp where emp_id ????

其中emp_id是数字字段.

谢谢,

sql ms-access jet

10
推荐指数
3
解决办法
6万
查看次数

填写整个SQL表列

我刚刚在我的数据库中添加了一个新列,我需要使用特定的文本值(已确认)进行传播.是否有一种简单的方法可以应用于我的所有数据条目,因此我不必遍历所有行并输入值?

谢谢

sql

10
推荐指数
3
解决办法
6万
查看次数