标签: syntax

SQL Server 中以冒号开头的行

在处理 DB 项目时,Visual Studio 生成了一个包含以下几行的更改脚本:

GO
SET ANSI_NULLS, ANSI_PADDING --etc.;
SET NUMERIC_ROUNDABORT OFF;

GO
:setvar DatabaseName "Foo"
:setvar DefaultFilePrefix "Foo"
:setvar DefaultDataPath ""
:setvar DefaultLogPath ""

GO
:on error exit
GO

:setvar __IsSqlCmdEnabled "True"
GO
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
    BEGIN
        PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
        SET NOEXEC ON;
    END

GO
USE [$(DatabaseName)];

GO
CREATE NONCLUSTERED INDEX [SomeIndex]
    ON [dbo].[SomeTable]([SomeColumn] ASC);

GO
Run Code Online (Sandbox Code Playgroud)

行首的冒号有什么意义?这个 Stackoverflow 问题说冒号用于绑定变量,但是冒号有:on error exit什么作用呢?

sql-server syntax

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

如何在 Oracle SQL 中添加命名约束?

我有一张桌子。我需要向NOT NULL其中一列添加约束。这是我对解决方案的最佳尝试:

alter table clookup add CONSTRAINT lookup_9 NOT NULL (clookup_col)

ERROR at line 1: ORA-00904: : invalid identifierNOT NULL零件上产生。为什么?

null oracle constraint syntax

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

触发器附近信号语句中的 concat 语法错误

请帮助我了解 MySQL 5.6 的语法。

出于某种原因,我收到错误消息:

ERROR 1064 (42000): You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near '('WRONG SOCIAL: ', new.social);
        end if;
        if not (new.photo is nul'
Run Code Online (Sandbox Code Playgroud)

尝试运行此 SQL 代码时:

create table table_social (
        sid varchar(250) primary key,
        auth char(32) not null,
        social integer,               -- to be checked by triggers
        female boolean,
        given varchar(250) not null,
        family varchar(250) null,
        photo varchar(1000) null,     -- …
Run Code Online (Sandbox Code Playgroud)

mysql trigger syntax mysql-5.6 concat

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

这是有效的 SQL Server 更新语法吗?

今天我正在阅读一些很久以前做的数据库笔记。我看到了这个查询:

UPDATE Sales.Orders
SET (shipcountry, shipregion, shipcity)=
(SELECT country, region, city
FROM Sales.Customers AS C
WHERE C.custid =Sales.Orders.custid)
WHERE custid IN
(SELECT custid FROM Sales.Customers WHERE country = 'USA');
Run Code Online (Sandbox Code Playgroud)

我对这个语法真的很陌生。但我的注释说它是“有效的 SQL Server 更新语法”。这是真的?SSMS 无法解析它。当我尝试运行它时,我得到了这个:

在此输入图像描述

另外,SQL Server 的UPDATE文档似乎建议在关键字(之后不允许使用SET。无论如何,我只是想确认一下。

sql-server syntax t-sql update

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

pgAdmin III 如何构建 CREATE 语句?

在 PostgreSQL 中,没有SHOW CREATE语句,例如 MySQL。但是当您使用 pgAdmin III 客户端程序并转到对象详细信息时,您会看到相应的 CREATE 语句。

所以这是我的问题:
pgAdmin III 如何构建它显示的 CREATE 语句?它使用 psql 的\d命令还是一些完全不同的 PostreSQL API?如果是这样,我该如何使用它?

postgresql syntax pgadmin

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

PostgreSQL UUID 文字:错误:语法错误在或附近

每当我使用 UUID 作为文字时,我都会得到

SELECT a82857b6-e336-4c6c-8499;
ERROR:  syntax error at or near "-"
Run Code Online (Sandbox Code Playgroud)

我认为这可能是编码问题,但似乎并非如此。

postgresql syntax uuid

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

逗号分隔连接(交叉连接)

我不明白这个查询是如何工作的:

1    SELECT       
2        EXTRACTVALUE(definition_xml.COLUMN_VALUE, 'SubtypeFieldInfo/DomainName') AS domain_name
3    FROM        
4        SDE.GDB_ITEMS_VW i 
5        JOIN SDE.GDB_ITEMTYPES it ON
6            i.Type = it.UUID
7            ,TABLE(XMLSEQUENCE(XMLType(Definition).Extract('/DETableInfo/Subtypes/Subtype/FieldInfos/SubtypeFieldInfo'))) definition_xml  
Run Code Online (Sandbox Code Playgroud)

第 7 行开头的逗号有什么作用?

我的猜测是编写查询的人使用了某种 SQL 简写。也许如果有人可以帮助重新格式化“初学者 SQL”中的查询,它可能会有所帮助。

oracle join syntax

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

Oracle 闪回查询语法 - 所有表都使用相同的时间戳

I'm not finding a lot of examples online of how to use Oracle Flashback Query and I'm hoping somebody can clarify syntax. I'm trying to execute a query with a large number of tables in it, but the syntax seems to require me to specify a timestamp for every single table involved in the query.

For example, the following query gets me consistent data, but it requires me to specify a timestamp for each table:

select t1.Field1, t2.Field2
  from table1 …
Run Code Online (Sandbox Code Playgroud)

oracle syntax flashback

3
推荐指数
2
解决办法
4826
查看次数

在 SQL 中使用最大结果作为谓词的值

假设我想找到收入比 Google 的所有员工都多的所有员工,是否可以将 max 的结果用作单个值而不是像这样的表?

select person-name
from Works
where salary > ( select max(salary)
        from Works
        where company-name == "Google" )
Run Code Online (Sandbox Code Playgroud)

(作品有人名、薪水和公司名列)

syntax

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

存储过程 sql server 中“+”附近的语法不正确

我正在编写一个存储过程,它将接受一个参数并向某些收件人发送邮件。我正在使用 sql 内置存储过程。

这是代码

create proc send_mail_admin(@usage_data as varchar(200))
as
begin

--get the list of mail admins from Users

declare @admin_list varchar(max);



set @admin_list = '';

--query to get all the admins

begin
    select 
        @admin_list = @admin_list + email + ';'
    from
        Users;
end

--call the mail stored procedure

exec msdb.dbo.sp_send_dbmail 
@profile_name='some_mail_profile',
@recipients=@admin_list,
@subject='Mail from sql server',
@body=@usage_data + ' end of data',
@importance='HIGH' ;



end;
Run Code Online (Sandbox Code Playgroud)

我在+符号中遇到错误。如果我删除+符号并执行,则该过程正在执行。否则它给出错误。请稍微帮助一下。

我正在基于知识尝试这个。因此,如果有的话,请随时分享发送这样的邮件的缺点。

谢谢你。

sql-server query stored-procedures syntax

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