我NVARCHAR(MAX)在SQL Server 2008中声明了一个类型的列,它的确切最大字符是什么,其中MAX是长度?
举几个例子,只是说:
内联表值
CREATE FUNCTION MyNS.GetUnshippedOrders()
RETURNS TABLE
AS
RETURN SELECT a.SaleId, a.CustomerID, b.Qty
FROM Sales.Sales a INNER JOIN Sales.SaleDetail b
ON a.SaleId = b.SaleId
INNER JOIN Production.Product c ON b.ProductID = c.ProductID
WHERE a.ShipDate IS NULL
GO
Run Code Online (Sandbox Code Playgroud)
多语句表值
CREATE FUNCTION MyNS.GetLastShipped(@CustomerID INT)
RETURNS @CustomerOrder TABLE
(SaleOrderID INT NOT NULL,
CustomerID INT NOT NULL,
OrderDate DATETIME NOT NULL,
OrderQty INT NOT NULL)
AS
BEGIN
DECLARE @MaxDate DATETIME
SELECT @MaxDate = MAX(OrderDate)
FROM Sales.SalesOrderHeader
WHERE CustomerID = @CustomerID
INSERT @CustomerOrder
SELECT a.SalesOrderID, …Run Code Online (Sandbox Code Playgroud) 我试图比较两个表,SQL Server,以验证一些数据.我想从两个表中返回所有行,其中数据在一个或另一个中.从本质上讲,我想表明所有的差异.我需要检查三个数据,FirstName,LastName和Product.
我对SQL很新,似乎很多我发现的解决方案都让事情变得复杂.我不必担心NULL.
我开始尝试这样的事情:
SELECT DISTINCT [First Name], [Last Name], [Product Name] FROM [Temp Test Data]
WHERE ([First Name] NOT IN (SELECT [First Name]
FROM [Real Data]))
Run Code Online (Sandbox Code Playgroud)
我在进一步考虑这个问题时遇到了麻烦.
谢谢!
编辑:
根据@treaschf的回答,我一直在尝试使用以下查询的变体:
SELECT td.[First Name], td.[Last Name], td.[Product Name]
FROM [Temp Test Data] td FULL OUTER JOIN [Data] AS d
ON td.[First Name] = d.[First Name] AND td.[Last Name] = d.[Last Name]
WHERE (d.[First Name] = NULL) AND (d.[Last Name] = NULL)
Run Code Online (Sandbox Code Playgroud)
但是当我知道td中至少有一行不在d中时,我一直得到0结果.
编辑:
好吧,我想我弄明白了.至少在我测试的几分钟内它似乎工作得很好.
SELECT [First Name], [Last Name]
FROM …Run Code Online (Sandbox Code Playgroud) 我想在SQL Server中从select查询结果创建一个表,我试过了
create table temp AS select.....
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
关键字"AS"附近的语法不正确
在SQL Server 2008 Management Studio中,当我右键单击数据库表并选择" 选择前100行 "时,我可以轻松地向SQL添加"ORDER BY"语句.这很好.
但是当我选择" 编辑前200行 "时,我没有能力改变 SQL(这使得很难找到并编辑刚刚添加到10,000中的记录.
我很确定我能够在SQL Server 2000中执行此操作.
在编辑记录时,SMSS 2008中是否有任何方法可以改变记录的显示方式?
我有一个表,其中一列是datetime类型的"Date".我们决定为该列添加默认约束
Alter table TableName
alter column dbo.TableName.Date default getutcdate()
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
"."附近的语法不正确
有没有人在这里看到任何明显错误的东西,我错过了(除了有一个更好的名称列)
我想在sql 2008上编写一个查询,它将直接或由于角色等报告所有有权访问特定数据库的用户或数据库中的对象(如表,视图和存储过程).报告将用于安全审计目的.不确定是否有人有完全符合我需求的查询,但希望能给我一个良好开端的东西.无论是sql 2008,2005还是2000,我都可以根据需要进行转换.
我通常在ADO.NET中创建参数时设置列大小
但是如果列是什么尺寸我会使用VARCHAR(MAX)?
cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
Run Code Online (Sandbox Code Playgroud) 在SQL Server 中使用nvarchar(max)vs. NText数据类型有哪些优缺点?我不需要向后兼容性,因此nvarchar(max)在较旧的SQL Server版本中不支持它.
编辑:很显然的问题也适用于TEXT和IMAGE对比varchar(max),并varbinary(max)为那些寻找那些数据类型之后.
我正在疯狂地试图弄清楚Intellisense为什么根本无法工作.我使用的服务器是本地的,是2008,数据库设置为2008兼容,Intellisense在我能找到的每个菜单中都打开,但即使用CTRL-J也不会弹出成员列表.
有没有人经历过这样的事情并找到了解决方法?除非我有Intellisense工作,否则我真的无法开始工作.
sql-server-2008 ×10
sql-server ×8
sql ×3
t-sql ×2
ado.net ×1
alter-column ×1
alter-table ×1
c# ×1
intellisense ×1
nvarchar ×1
ssms ×1
text ×1