在处理 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什么作用呢?
我有一张桌子。我需要向NOT NULL其中一列添加约束。这是我对解决方案的最佳尝试:
alter table clookup add CONSTRAINT lookup_9 NOT NULL (clookup_col)
这ERROR at line 1: ORA-00904: : invalid identifier在NOT NULL零件上产生。为什么?
请帮助我了解 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) 今天我正在阅读一些很久以前做的数据库笔记。我看到了这个查询:
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。无论如何,我只是想确认一下。
在 PostgreSQL 中,没有SHOW CREATE语句,例如 MySQL。但是当您使用 pgAdmin III 客户端程序并转到对象详细信息时,您会看到相应的 CREATE 语句。
所以这是我的问题:
pgAdmin III 如何构建它显示的 CREATE 语句?它使用 psql 的\d命令还是一些完全不同的 PostreSQL API?如果是这样,我该如何使用它?
每当我使用 UUID 作为文字时,我都会得到
SELECT a82857b6-e336-4c6c-8499;
ERROR: syntax error at or near "-"
Run Code Online (Sandbox Code Playgroud)
我认为这可能是编码问题,但似乎并非如此。
我不明白这个查询是如何工作的:
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”中的查询,它可能会有所帮助。
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) 假设我想找到收入比 Google 的所有员工都多的所有员工,是否可以将 max 的结果用作单个值而不是像这样的表?
select person-name
from Works
where salary > ( select max(salary)
from Works
where company-name == "Google" )
Run Code Online (Sandbox Code Playgroud)
(作品有人名、薪水和公司名列)
我正在编写一个存储过程,它将接受一个参数并向某些收件人发送邮件。我正在使用 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)
我在+符号中遇到错误。如果我删除+符号并执行,则该过程正在执行。否则它给出错误。请稍微帮助一下。
我正在基于知识尝试这个。因此,如果有的话,请随时分享发送这样的邮件的缺点。
谢谢你。