我想一次更新两个表.我如何在SQL Server 2005中这样做?
UPDATE
Table1,
Table2
SET
Table1.LastName='DR. XXXXXX',
Table2.WAprrs='start,stop'
FROM
Table1 T1,
Table2 T2
WHERE
T1.id = T2.id
AND
T1.id = '010008'
Run Code Online (Sandbox Code Playgroud) 我有一个表,其中一列是datetime类型的"Date".我们决定为该列添加默认约束
Alter table TableName
alter column dbo.TableName.Date default getutcdate()
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
"."附近的语法不正确
有没有人在这里看到任何明显错误的东西,我错过了(除了有一个更好的名称列)
我正在创建一个存储过程来搜索表.我有许多不同的搜索字段,所有这些字段都是可选的.有没有办法创建一个存储过程来处理这个?假设我有一个包含四个字段的表:ID,FirstName,LastName和Title.我可以这样做:
CREATE PROCEDURE spDoSearch
@FirstName varchar(25) = null,
@LastName varchar(25) = null,
@Title varchar(25) = null
AS
BEGIN
SELECT ID, FirstName, LastName, Title
FROM tblUsers
WHERE
FirstName = ISNULL(@FirstName, FirstName) AND
LastName = ISNULL(@LastName, LastName) AND
Title = ISNULL(@Title, Title)
END
Run Code Online (Sandbox Code Playgroud)
这种作品.但是它会忽略FirstName,LastName或Title为NULL的记录.如果未在搜索参数中指定Title,我想包含Title为NULL的记录 - 对于FirstName和LastName是相同的.我知道我可以用动态SQL做到这一点,但我想避免这种情况.
你能index在一个表变量上创建SQL Server 2000吗?
即
DECLARE @TEMPTABLE TABLE (
[ID] [int] NOT NULL PRIMARY KEY
,[Name] [nvarchar] (255) COLLATE DATABASE_DEFAULT NULL
)
Run Code Online (Sandbox Code Playgroud)
我可以在Name上创建索引吗?
我想知道是否有可能做这样的事情(这不起作用):
select cast( (exists(select * from theTable where theColumn like 'theValue%') as bit)
看起来它应该是可行的,但许多应该在SQL中工作的东西不会;)我已经看到了这方面的解决方法(SELECT 1 where ... Exists ...)但似乎我应该能够将存在函数的结果转换为一点并完成它.
我正在尝试将varchar列的长度从255个字符更新为500而不会丢失内容.我之前已经删除并重新创建了表格,但我从未接触过alter statement,这是我认为我需要用来做这个的.我在这里找到了文档:ALTER TABLE(Transfact-SQL)但是我无法做出正面或反面.
到目前为止,我有以下内容(基本上没有任何遗憾):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
Run Code Online (Sandbox Code Playgroud)
我该如何处理?那里有没有更好的文件说明(我做了一些搜索示例声明但是空了)?
我想转换像这样的字符串:
'10/15/2008 10:06:32 PM'
Run Code Online (Sandbox Code Playgroud)
进入Sql Server中的等效DATETIME值.
在Oracle中,我会说:
TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM')
Run Code Online (Sandbox Code Playgroud)
这个问题暗示我必须将字符串解析为其中一种标准格式,然后使用其中一种代码进行转换.对于如此平凡的行动来说,这似乎是荒谬的.有没有更简单的方法?
t-sql sql-server datetime sql-server-2005 string-to-datetime
非常简单的问题 - 我有一个属性,我想要双引号.我如何逃避它们?我试过了
我已经为所有这些变量设置了xml类型和varchar(max)的@xml变量.
declare @xml xml --(or varchar(max) tried both)
set @xml = '<transaction><item value="hi "mom" lol"
ItemId="106" ItemType="2" instanceId="215923801" dataSetId="1" /></transaction>'
declare @xh int
exec sp_xml_preparedocument @xh OUTPUT, @xml
insert into @commits --I declare the table, just removed it for brevity
select
x.*
from openxml(@xh,'/transaction/item')
WITH (
dataItemId int,
dataItemType int,
instanceId int,
dataSetId int,
value varchar(max)
) x
Run Code Online (Sandbox Code Playgroud) 如何在指定的秒数内导致延迟执行?
这不是这样的:
WAITFOR DELAY '00:02';
Run Code Online (Sandbox Code Playgroud)
有人可以帮我格式化吗?
我对这些之间的差异感到困惑.运行以下SQL会获得两个完美的结果集.有人可以解释一下这些差异吗?
SELECT ID, [Description], RANK() OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank' FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
Run Code Online (Sandbox Code Playgroud) t-sql ×10
sql-server ×8
sql ×5
alter-column ×1
alter-table ×1
datetime ×1
escaping ×1
indexing ×1
varchar ×1
xml ×1