似乎至less有两种使用直接T-SQL添加默认约束的方法。 我正确的是,下面两个唯一的区别是,第二个方法专门为约束创build一个名称,第一个方法有一个由SQL Server生成的? ALTER TABLE [Common].[PropertySetting] ADD DEFAULT ((1)) FOR [Active]; ALTER TABLE [Common].[PropertySetting] ADD CONSTRAINT [DF_PropertySetting_Active) DEFAULT ((1)) FOR [Active];
关于SQL Server,我明白: var意味着内存是懒惰分配的,这意味着它恰好适合数据(插入时)。 MAX意味着没有大小限制\限制。 那么,当使用varchar ,最好使用MAX ,因为我们不会分配整个大小? 我们是否应该使用一个常量大小,只有当我们想在这个数据库列上强制执行时才有这个限制?
我有一个Microsoft SQL Server 2008查询,使用左外连接从三个表中返回数据。 很多时候,第二个和第三个表中没有数据,所以我得到一个null,我认为它是左外连接的默认值。 有没有办法在select语句中replace默认值? 我有一个解决方法,我可以select到一个表variables,但感觉有点肮脏。 SELECT iar.Description, iai.Quantity, iai.Quantity * rpl.RegularPrice as 'Retail', iar.Compliance FROM InventoryAdjustmentReason iar LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId) LEFT OUTER JOIN Item i on (i.Id = iai.ItemId) LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo) WHERE iar.StoreUse = 'yes' 如果可能,我希望Quantity和RegularPrice默认为零。
有人可以告诉我何时何地需要在SQL Server中使用begin和end块? 另外, Go关键字究竟干什么?
如何将选定的字段值存储到查询中的variables中并在更新语句中使用它? 这是我的程序: 我正在编写一个SQL Server 2005 T-SQL存储过程,它执行以下操作: 从发票表中获取发票编号列表并存储到光标 从光标 – > tmp_keyvariables中获取发票ID foreach tmp_key从客户表中查找发票客户主要联系人标识 用主要联系人ID更新客户端联系人密钥 closures游标 这是我的代码: DECLARE @tmp_key int DECLARE @get_invckey cursor set @get_invckey = CURSOR FOR select invckey from tarinvoice where confirmtocntctkey is null and tranno like '%115876' OPEN @get_invckey FETCH NEXT FROM @get_invckey into @tmp_key WHILE (@@FETCH_STATUS = 0) BEGIN SELECT c.PrimaryCntctKey as […]
或者有什么替代scheme来实现下一个查询: select * from table where isExternal = @type = 2 ? 1 : 0`
我在T-SQL中寻找一个类似于.NET中的String.Format方法的内置函数/扩展函数。
我有一个只有一列的pipe理员表adminId,它是主键。 由于业务规则,它必须是这样的。 我想一劳永逸地了解如何编写存储过程,像这样在表中插入值。 我正在使用SQL Server和T-SQL并尝试使用SCOPE_IDENTITY(),但由于该表的INSERT_IDENTITY为false或closures,所以不起作用。 我真的不想插入一个虚拟值只是为了能够插入一个新的行。 谢谢!
我很惊讶,不能在这里find这个问题。 我有一个date时间var,我想将其转换为一个string,以便我可以将其附加到另一个string。 我希望它可以很容易地转换回date时间的格式。 我怎样才能做到这一点? (我想要date部分和时间部分。)
我如何在SQL Server 2005中使用DateAdd函数将date添加到date