标签: sql-server-2016

如何在 Microsoft SQL Server 中将每个存储过程的脚本生成为单独的 .SQL 文件?

我必须从 SQL Server 数据库创建每个存储过程的副本并存储在某个物理位置。我知道使用“生成脚本”我们可以将所有存储过程导出到单个“.sql”文件中,但我不想那样做。我需要在某个位置按名称存储每个存储过程的单独副本。我必须为此编写批处理脚本吗?

sql database batch-file sql-server-2016 azure-sql-database

1
推荐指数
1
解决办法
764
查看次数

从 sp_executesql 检索列定义

我有返回不同表结果的动态查询。结果可以具有不同数量的列和不同的列名称。

EXEC SP_EXECUTESQL @Query,N'@parameter nvarchar(19)',@parameter=@parameter
Run Code Online (Sandbox Code Playgroud)

我可以通过使用检索存储过程的列定义

exec sp_describe_first_result_set N''
Run Code Online (Sandbox Code Playgroud)

但是我如何检索列定义或仅从中获取列名称sp_executesql

sql t-sql sql-server sql-server-2016

1
推荐指数
1
解决办法
333
查看次数

如何在 SQL Server 中获取沿列的 json 字符串

我有一个关于 SQL Server 的问题:如何使用几列获取 json 格式并获取列?

表:雇员

id  | name | sal | depno
----+------+-----+------
1   | a    | 100 | 10
2   | b    | 200 | 20
Run Code Online (Sandbox Code Playgroud)

根据这些数据,我想要这样的输出:

id  | name | sal  | deptno | empjsonstring
----+------+------+--------+-------------------------------------------
1   | a    | 100  | 10     | {"id":1,"name":"a","sal":100,"deptno":10}
2   | b    | 200  | 20     | {"id":2,"name":"b","sal"200,"deptno":20}
Run Code Online (Sandbox Code Playgroud)

我尝试过这个查询:

select * 
from emp 
for json path, include_null_values, without_array_wrapper 
Run Code Online (Sandbox Code Playgroud)

但这并没有返回预期的结果。

您能告诉我如何在 SQL Server 中编写查询来完成此任务吗?

sql sql-server json sql-server-2012 sql-server-2016

1
推荐指数
1
解决办法
768
查看次数

如何在SQL Server 2016中获取nvarchar中的json输出

我使用此Query将数据转换为JSON

SELECT*FROM tbl_subject FOR JSON AUTO

我得到了回应 在此输入图像描述

当我点击响应它打开为XML文件

在此输入图像描述

如何将此xml更改为nvarchar数据类型

json sql-server-2016

0
推荐指数
1
解决办法
738
查看次数

使用SQL函数FIRST_VALUE获取最后一个值

是否可以使用SQL函数获取排序变量的最后一个值FIRST_VALUE?这是获取最后一个值的方法.

select
[MyVal_Last] = FIRST_VALUE([MyValue]) OVER (PARTITION BY [Category] ORDER BY [MyValue] DESC)  
from tbl
Run Code Online (Sandbox Code Playgroud)

是否可以修改它以获得倒数第二个值?

更新.我熟悉不同的方法来获得最后但提到的一个值,即这里的答案是旧的,并且已经长了很长的胡须.我想知道新版本的SQL Server是否可以使用新功能以更优雅的方式完成它.

sql sql-server function sql-server-2016

0
推荐指数
1
解决办法
455
查看次数

T-sql运行第一个查询然后CASE第二个查询和输出数据或'否'

嘿所有我试图输出数据如果@blah等于是,但如果不是则输出'否'.

这是我目前的查询:

DECLARE @blah VARCHAR(MAX)

SET @blah = (SELECT 
   CASE WHEN 
      COUNT(email) = '1' THEN     'Yes'
      ELSE                        'No'
   END
FROM 
   usersTbl 
WHERE 
   email = 'someone@somewhere.com');
SELECT
   CASE WHEN 
      @blah =                     'Yes' THEN 
     (SELECT * 
      FROM 
         usersTbl 
      WHERE 
         email = 'someone@somewhere.com')
      ELSE                        'No'
   END
FROM 
   usersTbl;
Run Code Online (Sandbox Code Playgroud)

目前我得到的错误是:

当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式.

我错过了什么?

sql t-sql sql-server sql-server-2016

0
推荐指数
1
解决办法
38
查看次数

在SQL Server中的IN拆分函数中找到的记录的精确排序顺序

我需要返回以逗号分隔的字符串发送到存储过程的记录 - 如下所示:

@PMID = 29573145,24106086,20513766,24326307
Run Code Online (Sandbox Code Playgroud)

我有一个存储过程来拉取记录,如

SELECT 
    data, 
    PMID  
FROM
    [dbo].[ADMIN_Publication_JSON] 
WHERE 
    PMID IN (SELECT DATA FROM dbo.Split(@PMID, ',')) 
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是返回记录集是随机的,我需要它是精确的,因为我的最终用户可以更改顺序,并且记录需要按顺序显示,这将改变逗号字符串中的顺序.这是可能的还是我需要完全改变我提取数据的方式?谢谢

sql sql-server stored-procedures sql-server-2014 sql-server-2016

0
推荐指数
1
解决办法
93
查看次数

SQL如何通过遍历表来检查存储过程是否存在

假设我有一个Name, Date, StoredProcedure在SQL Server 2016 中有列的表

我需要查询此表并循环遍历存储过程列并检查数据库中是否存在此存储过程.如果它不存在,那么我需要仅为存储过程列使该行为null.

这是我尝试过但它不起作用

Select m1.StoredProcedure 
from MyTable m1 
where
    IF NOT EXISTS (SELECT  *
                   FROM sys.objects
                   WHERE object_id = OBJECT_ID(N'StoredProcedure')
                     AND type IN (N'P', N'PC')) 
    Then Update MyTable m2
         Set StoredProcedure = ''
         Where m2 StoredProcedure = m1.StoredProcedure
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2016

0
推荐指数
1
解决办法
47
查看次数

如何在sql server中打印?

输出窗口填充'?' 分数.

select ('??? ???????? ??????') as test
Run Code Online (Sandbox Code Playgroud)

我想在输出窗口中使用完全相同的文本.我正在使用SQL Server 2016.

t-sql sql-server sql-server-2016

0
推荐指数
2
解决办法
116
查看次数

在MS SQL Server中正确的JSON格式

我有以下SQL表

user_id  product_1  product_2  product_3
123      Scissors   Stone      Paper
Run Code Online (Sandbox Code Playgroud)

我编写了此代码以将结果格式化为JSON,但无法以所需的格式获取它。如果我将所有产品列都命名为namesql则返回错误 Use different names and aliases for each column in SELECT list.

SQL代码:

select 
    product1 as 'Product1', 
    product2 as 'Product2', 
    product3 as 'Product3'
from Recommendations
where user_id = '123'
FOR JSON PATH, ROOT('Offers')
Run Code Online (Sandbox Code Playgroud)

电流输出:

{"offers":[
   {"Product1": "Scissors", "Product2": "Stone", "Product3": "Paper"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{"offers":[
   {"name": "Scissors"}, 
   {"name": "Stone"}, 
   {"name": "Paper"}
  ]
} 
Run Code Online (Sandbox Code Playgroud)

sql sql-server json sql-server-2016

0
推荐指数
1
解决办法
31
查看次数