我使用ms sql 2008我有问题是在特定表的列上添加默认值.
ALTER TABLE dbo.CmsAuthors
ALTER COLUMN IsContentAuthorPublished
ADD CONSTRAINT DF_CmsAuthors_IsContentAuthorPublished DEFAULT 0
Run Code Online (Sandbox Code Playgroud)
你能告诉我这里我做错了什么吗?
谢谢
我知道这有点模糊,但我对观点不熟悉,并试图了解他们的能力.
假设我使用表的组合创建由复杂查询创建的视图.如果我试图在视图中编辑一条记录,那么视图是否足够智能,可以向后通过创建视图的逻辑并在正确的表中编辑正确的值?
是否在视图中编辑了一个值?
谢谢!
我目前正在使用SQL Server Management Studio(版本9.00.3042.00)并单击"新建查询"并编写以下代码:
Select
colA,
colB,
colC
colD
From
table1
Run Code Online (Sandbox Code Playgroud)
当我单击解析(复选框)按钮以验证SQL语句时,它会显示"命令已成功完成".是不是解析按钮假设抓住这些简单的错误......
有没有人在Management Studio中遇到过这种行为?这才刚刚开始发生......
我有一个表(SQL 2000),有超过10,000,000条记录.记录的增加速度约为每周80,000-100,000.每周一次,从数据中生成一些报告.报告通常运行起来相当慢,因为索引很少(可能是为了加速INSERT).一个新报告确实可以从特定"char(3)"列的附加索引中受益.
我使用企业管理器添加了索引(管理索引 - >新建 - >选择列,确定),甚至重建了表上的索引,但SELECT查询根本没有加速.有任何想法吗?
更新:
表定义:
ID, int, PK
Source, char(3) <--- column I want indexed
...
About 20 different varchar fields
...
CreatedDate, datetime
Status, tinyint
ExternalID, uniqueidentifier
Run Code Online (Sandbox Code Playgroud)
我的测试查询只是:
select top 10000 [field list] where Source = 'abc'
Run Code Online (Sandbox Code Playgroud) 下面是我的存储过程.我想使用存储过程从tbl_member中选择所有日期行并插入2表.但它不起作用.有人能帮帮我吗?
Create PROCEDURE sp_test
AS
BEGIN
SET NOCOUNT ON;
Declare @A Varchar(255), @B Varchar(255), @C Varchar(255), @D int
Declare Table_Cursor Cursor
For select A, B, C from tbl_Member Open Table_Cursor
Fetch Next From Table_Cursor
Into @A, @B, @C While(@@Fetch_Status=0)
Begin Exec(
'insert into NewMember (A, B, C, D) values (@A, @B, @C, @D)
set @D = @@IDENTITY
Insert into MemberId (Mid) VALUES(@D)
)
Fetch Next From Table_Cursor Into @A, @B, @C End Close Table_Cursor
Deallocate Table_Cursor
END
GO
Run Code Online (Sandbox Code Playgroud) 我一直在努力优化查询,并遇到了让我质疑我是如何一直使用SQL的OR运算符的情况.(也是SQL Server 2000)
我有一个查询,其中条件(WHERE)子句看起来像这样:
WHERE (Column1 = @Param1 or Column1 LIKE @Param1 + '%')
AND (@Param2 = '' OR Column2 = @Param2 OR Column2 LIKE @Param2 + '%')
Run Code Online (Sandbox Code Playgroud)
现在,我一直都知道SQL中的OR评估了两个表达式.因此,对于左表达式计算为true的所有记录将与在右表达式上计算为true的所有记录一起返回.例如:
SELECT * FROM TABLE1
WHERE COL1 = 'Test' OR Col2 = 'Data'
Run Code Online (Sandbox Code Playgroud)
这将返回COL1为'Test'的所有记录以及Col2为'Data'的任何记录
在上面的示例中,我将Column2条件修改为以下内容:
AND(Column2 LIKE ISNULL(@Param2, '') + '%')
Run Code Online (Sandbox Code Playgroud)
突然间,我得到0行返回.
我是否误解了OR只评估表达式,直到它找到一个真实的结果或是否有一个条件会导致2个不同的结果返回不同的结果?
我从未与ajax合作过.
我需要知道是否可以使用ajax在db(sql server 2005)上运行查询.
我的目标是通过刷新页面来运行查询.
你有什么想法吗?
有人可以帮我解决一下问题吗?在Microsoft SQL Server中,我有以下查询,执行正常:
SELECT * FROM ControlPoint
INNER JOIN Project ON ControlPoint.ProjectID = Project.ProjectID
INNER JOIN Site ON Site.SiteID = Project.SiteID
WHERE Project.ProjectName LIKE '%Flood%'
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我尝试在Microsoft Access上执行此操作时,它会给我一些语法错误.自从我使用Access以来,它一直是永远的,但如果我没记错,我认为连接需要在括号中.任何帮助都会有用!
与编程语言不同,SQL不允许使用以下语法为变量赋值(相反,我们必须使用SET或SELECT):
@i=100; //error
Run Code Online (Sandbox Code Playgroud)
SQL有什么不允许这样的特殊原因吗?
谢谢
前几天这个让我抓狂.您希望以下内容返回什么?
SELECT 'X' AS line
UNION
SELECT 'X ' AS line
Run Code Online (Sandbox Code Playgroud)
注意第二个SELECT中的空格.显然,SQL 2000和2005都返回1个结果.即使它是一个UNION(而不是UNION ALL).
关于这一点,我没有在网上看到任何内容.为什么会这样?我猜这是一个错误.它是否有正当理由?