我有一个非常简单的表让我们称它为三星.在这个表中,我有一个名为description的列,其中两个值的samsung_id为200和201.对于这两个条目,我有一个值为"NULL"的描述.我希望能够更新所有这些.我知道我可以执行以下命令:
UPDATE SAMSUNG
SET description = 'square'
WHERE samsung_id = 200 OR samsung_id = 201;
Run Code Online (Sandbox Code Playgroud)
为了达到我想要的结果,但是如果你的表有1,000个条目并且你不想列出它们怎么办呢.如何运行此命令以取出NULL的所有值并替换为square.
我在本教程中使用了代码片段来连接到MSSQL darabase.
http://www.java-tips.org/other-api-tips/jdbc/how-to-connect-microsoft-sql-server-using-jdbc.html
但是当我运行程序时,我收到了这个错误.
java.sql.SQLException: Network error IOException: Connection timed out: connect
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:410)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at DB.dbConnect(Test.java:28)
at Test.main(Test.java:12)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307)
at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:257)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:311)
... 6 more
Run Code Online (Sandbox Code Playgroud)
我的连接网址是
db.dbConnect(
"jdbc:jtds:sqlserver://CSLK-PT12DB:1434/R8_JBOSS_MSSQL_Archived_Migrated_Beta","spider3","spider3");
}
Run Code Online (Sandbox Code Playgroud)
这个例外的原因是什么以及如何解决?
我有一个说明字段的文件表
DocumentID int - PK and autoincrement
LastStatusChangedDateTime - datetime
JurisdictionID - int
DocumentStatusID - int
Run Code Online (Sandbox Code Playgroud)
现在我想引入一个名为的计算列CanChangeStatus.这就像一个队列.因此,如果文档是第一个,则可以更改其状态.这是我的查询:
Select d.DocumentID,
(
Select Cast(Case When d.DocumentID = v.DocumentID Then 1 Else 0 End as bit)
From
(
Select Top 1 DocumentID
From Documents
Where JurisdictionID = d.JurisdictionID
And
DocumentStatusID = d.DocumentStatusID
Order By LastStatusChangedDateTime
) v
) as CanChangeStatus
From Documents d
Run Code Online (Sandbox Code Playgroud)
指数是那里JurisdictionID和DocumentStatusID.罪魁祸首是子查询 - 我试图计算的方式CanChangeStatus.有什么方法可以加快速度或将此子查询转换为连接,因为连接大多比子查询快?
我有一个select语句,它返回每个标记的元素数组:
|TAG | Bool1 | Bool2 | Bool3 |
|-----------------------------|
|tag1 | 0 | 1 | 0 |
|tag1 | 1 | 1 | 0 |
-------------------------------
Run Code Online (Sandbox Code Playgroud)
我希望结果是两行与OR语句的并集:
_______________________________
|TAG | Bool1 | Bool2 | Bool3 |
|-----------------------------|
|tag1 | 1 | 1 | 0 |
-------------------------------
Run Code Online (Sandbox Code Playgroud) sql sql-server stored-procedures sql-server-2008 sql-server-2012
我正在使用Microsoft的SQL Server 2012并使用另一个表的主键创建一个表作为外键,但是它表示存在语法错误
CREATE TABLE [dbo].[STUDENT]
(
STUDENT_ID int not null Identity,
SCHOOL_ID INT NOT NULL,
CONSTRAINT PKEY PRIMARY KEY (STUDENT_ID),
CONSTRAINT FKEY FOREIGN KEY (USER_ID) REFERENCES USER (USER_ID)
);
Run Code Online (Sandbox Code Playgroud)
它给了我,sql80001 error请帮助
我正在尝试编写一个SQL查询,它将输出表和视图中的所有列.
下面的查询只返回表列,不包括视图列
SELECT t.name AS table_name, SCHEMA_NAME(schema_id) AS schema_name, c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
ORDER BY schema_name, table_name;
Run Code Online (Sandbox Code Playgroud) 请考虑下表:
DECLARE @tmp_Example
TABLE (
TestInt int,
TestName varchar(max)
);
INSERT INTO @tmp_Example (TestInt, TestName)
VALUES (22,'Bob'),
(23,'James'),
(24,'Joe');
SELECT * from @tmp_Example
WHERE TestInt = 23;
Run Code Online (Sandbox Code Playgroud)
我正在进入有些人可能想为TestInt选择多个结果的情况,我收到它是这样的:
('23,24')
Run Code Online (Sandbox Code Playgroud)
在不更改表格架构的情况下,我如何支持这样的查询?我像这样摆弄它:
DECLARE @testEx as varchar(max) = '23,24';
SELECT * from @tmp_Example
WHERE TestInt = CAST(dbo.Split(@testEx,',') AS int);
Run Code Online (Sandbox Code Playgroud) 哪里有一个没有主键的大表,在三个字段上有唯一索引,其中两个可以为空.
有很多应用程序代码依赖于值(或非值)NULL意味着什么,所以我们必须保留列的可空值,它们是通常是主键/聚簇索引的关键列.
对于这三个字段,是否有任何可以按索引方式进行的操作?我们刚刚将数据库升级到SQL Server 2012.
即使作为可空列,行也将在这些字段中包含唯一值.
CREATE TABLE [troublesome].[table](
[AId] [int] NOT NULL,
[BNumber] [int] NULL,
[UserId] [uniqueidentifier] NULL,...
Run Code Online (Sandbox Code Playgroud) 我的数据库中有几个表是父子关系。例如:
CREATE TABLE [dbo].[cntnr_header]
(
[cntnr_id] [dbo].[uid] NOT NULL,
CONSTRAINT [pk_cntnr_header] PRIMARY KEY CLUSTERED ([cntnr_id] ASC),
);
CREATE TABLE [dbo].[cntnr_content]
(
[cntnr_content_id] [dbo].[uid] NOT NULL,
[cntnr_id] [dbo].[uid] NOT NULL,
CONSTRAINT [pk_cntnr_content]
PRIMARY KEY CLUSTERED ([cntnr_content_id] ASC),
CONSTRAINT [fk_cntnr_content_cntnr_header]
FOREIGN KEY ([cntnr_id])
REFERENCES [dbo].[cntnr_header] ([cntnr_id]),
);
Run Code Online (Sandbox Code Playgroud)
如您所见,当前cntnr_id在表中的外键上没有索引cntnr_content。我运行了调优向导,实际上我看到它建议为表cntnr_content_id和cntnr_id表都添加一个非聚集索引cntnr_content。我不太了解这一点,因为cntnr_content_id它已经是聚集索引。为什么会推荐这样的索引?
CREATE NONCLUSTERED INDEX [_dta_index_cntnr_content_7_821577965__K1_K2] ON [dbo].[cntnr_content]
(
[cntnr_content_id] ASC,
[cntnr_id] ASC
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON …Run Code Online (Sandbox Code Playgroud) 我在SQL Server 2012中创建了一个存储过程.该过程工作正常并且执行,但我只是好奇,为什么它在过程名称下面显示这个波浪线?
下面是显示我的存储过程的图像:

sql-server-2012 ×10
sql-server ×7
sql ×6
database ×1
foreign-keys ×1
indexing ×1
java ×1
t-sql ×1