当前位置: 澳门新濠3559 > 数据库 > 正文

1.创建表结构和数据,其实这个跟你的权限无关

时间:2019-11-09 00:17来源:数据库
有时候,我们会用 Set Identity_Insert Table ON 来处理数据表的某些自增列。如果在本地倒是没什么问题。如果是远程服务器,则会报 SQL Statement 1.创建表结构和数据 找不到对象"XXX" ,因为它

有时候,我们会用 Set Identity_Insert Table ON  来处理数据表的某些自增列。如果在本地倒是没什么问题。如果是远程服务器,则会报

SQL Statement

1.创建表结构和数据

找不到对象"XXX" ,因为它不存在或者您没有所需的权限

  1. Set Identity_Insert [Table_Name] [ON/OFF]
    当表被设计为ID自动生成时,只有set 为ON, 才能手动插入指定ID值。
  2. GO 语句:
    (1)标注一批Transact-SQL 语句的结束
    (2)在GO之前声明的变量在GO之后失效。

澳门新濠3559 1澳门新濠3559 2创建表和数据

 

**************

Create Table Product --产品表
(
ProductID Int Identity(1,1) Primary key, --产品ID
ProductName NVarchar(100) Not Null, --产品名称
ProductPrice Int Not Null--价格
澳门新濠3559,)
GO

其实这个跟你的权限无关,即使你链接服务器用的是sa一样会报这个。

  1. 有namespace的XPath访问:

Create Table ProductOrder --产品订单
(
OrderID Int Identity(1000,1) Primary key,
ProductID Int,
Quantity Int,--数量
amount Int,--金额
OrderDateTime DateTime Not Null --下单时间
)
Alter Table ProductOrder
Add Constraint FK_ProductOrder_ProductID Foreign Key(ProductID)
References Product(ProductID)
GO

其实解决方法很简单,换一个思路。

澳门新濠3559 3XmlNodeList nodeList;
澳门新濠3559 4XmlNode root=doc.DocumentElement;
澳门新濠3559 5XmlNamespaceManager nspMgr=new XmlNamespaceManager(doc.NameTable);
澳门新濠3559 6nspMgr.AddNamespace("nsp",doc.DocumentElement.NamespaceURI);
澳门新濠3559 7nodeList=root.SelectNodes("//nsp:[@key]",nspMgr);

Insert Into Product
Values('黄金',389.8)

用 exec ('Set Identity_Insert DB.schema.Table ON') AT Server 

  1. 取得当前Windows用户的权限:

Insert Into Product
Values('白银',8.9)

来处理就可以了

澳门新濠3559 8string userName = WindowsIdentity.GetCurrent().Name;
澳门新濠3559 9WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
澳门新濠3559 10bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);

Insert Into ProductOrder
Values(1,10,3890,GetDate())

Insert Into ProductOrder
Values(2,1000,8900,GetDate())

Insert Into ProductOrder
Values(1,150,389.8*150,'2012-12-21')

Insert Into ProductOrder
Values(1,60000,388*60000,'2011-10-1')

Insert Into ProductOrder
Values(2,10000,88950,GetDate())

Insert Into ProductOrder
Values(2,1000,8850,GetDate())

Insert Into ProductOrder
Values(2,4000,32850,GetDate())

Select * from Product
Select * from ProductOrder

2.取出每个产品的前2条记录

   2.1 使用ROW_NUMBER() 进行排位分组

 

Select T.OrderID, P.ProductName, T.Quantity, T.Amount, T.OrderDateTime
From Product P
Left Join 
(
Select Row_Number() over(Partition **By** ProductID Order by OrderDateTime Desc) As RowID,
OrderID, ProductID,Quantity, Amount,OrderDateTime
From ProductOrder
) T On T.ProductID = P.ProductID
Where T.RowID<3

   2.2 使用Cross Apply

 

Select T.OrderID, P.ProductName, T.Quantity, T.Amount, T.OrderDateTime
From Product P
Cross** Apply
(
Select Top 2 * from ProductOrder O Where 
O.ProductID = P.ProductID**
Order By OrderDateTime Desc
) As T

 

 

 

 

 

 

 

 

 

编辑:数据库 本文来源:1.创建表结构和数据,其实这个跟你的权限无关

关键词: