标签: sql-server

是什么让SQL语句变得可思议?

根据定义(至少从我所见过的),sargable意味着查询能够使查询引擎优化查询使用的执行计划.我已经尝试过查找答案,但似乎没有太多关于主题的内容.所以问题是,什么做或不做一个SQL查询sargable?任何文件将不胜感激.

供参考:SARGable

sql-server performance

243
推荐指数
4
解决办法
7万
查看次数

如何在C#程序中执行存储过程

我想从C#程序执行此存储过程.

我在SqlServer查询窗口中编写了以下存储过程并将其保存为stored1:

use master 
go
create procedure dbo.test as

DECLARE @command as varchar(1000), @i int
SET @i = 0
WHILE @i < 5
BEGIN
Print 'I VALUE ' +CONVERT(varchar(20),@i)
EXEC(@command)
SET @i = @i + 1
END
Run Code Online (Sandbox Code Playgroud)

编辑:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace AutomationApp
{
    class Program
    {
        public void RunStoredProc()
        {
            SqlConnection conn = null;
            SqlDataReader rdr  = null;

            Console.WriteLine("\nTop 10 Most Expensive Products:\n");

            try
            {
                conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI");
                conn.Open();
                SqlCommand …
Run Code Online (Sandbox Code Playgroud)

c# sql-server stored-procedures

243
推荐指数
7
解决办法
75万
查看次数

将SQL Server中的datetime字段的默认值添加到时间戳

我有一个表收集从我们网站提交的表单,但由于某种原因,当他们创建表时,他们没有在表中添加时间戳.我希望它输入记录输入的确切日期和时间.

我知道它在某处,但我似乎无法找到如何设置默认值(如在Access中,你使用getNow()Now())但我不知道在哪里放它.

sql-server datetime

243
推荐指数
8
解决办法
66万
查看次数

如何获取SQL SERVER数据库中所有表的行计数

我正在搜索一个SQL脚本,可用于确定给定数据库的任何表中是否有任何数据(即行计数).

我们的想法是在存在任何行(在任何数据库中)的情况下重新实现数据库.

所说的数据库是Microsoft SQL SERVER.

有人可以建议一个示例脚本吗?

sql sql-server rowcount

241
推荐指数
8
解决办法
56万
查看次数

如何在SQL Server中创建外键?

我从来没有为SQL Server"手动编码"对象创建代码,并且外键修改在SQL Server和Postgres之间看似不同.这是我的sql到目前为止:

drop table exams;
drop table question_bank;
drop table anwser_bank;

create table exams
(
    exam_id uniqueidentifier primary key,
    exam_name varchar(50),
);
create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null,
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);
create table anwser_bank
(
    anwser_id           uniqueidentifier primary key,
    anwser_question_id  uniqueidentifier,
    anwser_text         varchar(1024),
    anwser_is_correct   bit
);
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我收到此错误:

消息8139,级别16,状态0,行9外键中的引用列数与引用列的数量不同,表'question_bank'.

你能发现错误吗?

sql t-sql sql-server

240
推荐指数
9
解决办法
44万
查看次数

多列的唯一约束

CREATE TABLE [dbo].[user](
        [userID] [int] IDENTITY(1,1) NOT NULL,
        [fcode] [int] NULL,
        [scode] [int] NULL,
        [dcode] [int] NULL,
        [name] [nvarchar](50) NULL,
        [address] [nvarchar](50) NULL,
     CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED 
    (
        [userID] ASC
    )
    ) ON [PRIMARY]

    GO
Run Code Online (Sandbox Code Playgroud)

如何fcode, scode, dcode使用t-sql和/或management studio?为列添加唯一约束?fcode, scode, dcode必须是独一无二的.

sql-server ssms sql-server-2008

240
推荐指数
3
解决办法
18万
查看次数

什么是ISNULL()的PostgreSQL等价物

在MS SQL-Server中,我可以这样做:

SELECT ISNULL(Field,'Empty') from Table

但是在PostgreSQL中我遇到了语法错误.我如何模拟ISNULL()功能?

sql-server postgresql null

239
推荐指数
4
解决办法
24万
查看次数

在数据库中的任何位置查找值

给定#,我如何发现它可以在哪个表和列中找到?

我不在乎它是否快,它只需要工作.

sql-server

237
推荐指数
7
解决办法
36万
查看次数

需要列出SQL Server数据库中具有表名和表模式的所有触发器

我需要使用表名和表的模式列出SQL Server数据库中的所有触发器.

我几乎在这里:

SELECT trigger_name = name, trigger_owner = USER_NAME(uid),table_schema = , table_name = OBJECT_NAME(parent_obj),
  isupdate = OBJECTPROPERTY( id, 'ExecIsUpdateTrigger'), isdelete = OBJECTPROPERTY( id, 'ExecIsDeleteTrigger'),
  isinsert = OBJECTPROPERTY( id, 'ExecIsInsertTrigger'), isafter = OBJECTPROPERTY( id, 'ExecIsAfterTrigger'),
  isinsteadof = OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger'),
  [disabled] = OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') 
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
WHERE type = 'TR'
Run Code Online (Sandbox Code Playgroud)

我只需要获取表的模式.

sql t-sql database sql-server triggers

235
推荐指数
8
解决办法
41万
查看次数

SQL Server SELECT INTO @variable?

我在我的一个Sql(2008)存储过程中有以下代码执行完全正常:

    CREATE PROCEDURE [dbo].[Item_AddItem]
        @CustomerId uniqueidentifier,
        @Description nvarchar(100),
        @Type int,
        @Username nvarchar(100),
    AS
    BEGIN

        DECLARE @TopRelatedItemId uniqueidentifier;
        SET @TopRelatedItemId = 
        (
           SELECT top(1) RelatedItemId 
           FROM RelatedItems 
           WHERE CustomerId = @CustomerId
        ) 

        DECLARE @TempItem TABLE
        (
            ItemId uniqueidentifier,
            CustomerId uniqueidentifier,
            Description nvarchar(100),
            Type int,
            Username nvarchar(100),
            TimeStamp datetime
        );

        INSERT INTO Item
        OUTPUT INSERTED.* INTO @TempItem
        SELECT NEWID(), @CustomerId, @Description, @Type, @Username, GETDATE()

        SELECT
            ItemId,
            CustomerId,
            @TopRelatedItemId,
            Description,
            Type,
            Username,
            TimeStamp
        FROM
            @TempItem
END
GO
Run Code Online (Sandbox Code Playgroud)

所以你们的问题是有可能做一些事情:

DECLARE @TempCustomer TABLE
(
   CustomerId …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

235
推荐指数
4
解决办法
75万
查看次数