我正在将数据从旧系统迁移到我正在构建的新系统中,并发现有人在做一种不好的做法,即在某些人的姓名开头添加句点,以使他们首先出现在某些下拉列表中。我试图弄清楚如何删除这些句点,当它们是列的第一个字符时,而不删除名称后面的句点(例如中间名首字母)。此更改是在命令期间进行的INSERT INTO SELECT。
开始学习 SQL Server 并坚持使用这个简单的代码:
drop database if exists dbo;
create database dbo;
create table dbo.a_table (a_table_a_field int not null);
Run Code Online (Sandbox Code Playgroud)
在 SSMS 中运行两次会给出:“数据库中已经有一个名为‘a_table’的对象。”
看来我的做法完全错误。请帮忙。
我有一个表,我试图只返回 rendition_type Interactive 的记录,而没有其他关联的 rendition_type。如果一个记录有多个 rendition_type,我需要将它从列表中排除。
DOC_ID RENDITION_ID RENDITION_TYPE
001 001 Interactive
001 002 Web PDF
002 003 Interactive
003 004 Interactive
003 005 Print PDF
004 006 Interactive
005 007 Interactive
005 008 Web PDF
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个查询,该查询将仅返回 document_ID 的 Rendition_type 类型仅为 1 且该类型为 Interactive 的行。
我正在尝试执行以下语句,该语句创建一个名为 service2019 的数据库:
DECLARE @dbname VARCHAR(50);
SET @dbname = 'service' + CAST(YEAR(GETDATE()) AS VARCHAR(4));
EXEC (
'CREATE DATABASE ' + @dbname + ' ON PRIMARY
( NAME =' + '' + @dbname +'' + ', FILENAME = ''C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQL2014TEST\MSSQL\DATA\''' + '''' + @dbname + '''' + '''.mdf''' + ', SIZE = 10MB , MAXSIZE = UNLIMITED, FILEGROWTH = 100KB )
LOG ON
( NAME =' + '' + @dbname + '_log' + ', FILENAME = ''C:\Program Files\Microsoft SQL …Run Code Online (Sandbox Code Playgroud) sql-server dynamic-sql t-sql sql-server-2014 quoted-identifier
我遇到了这个存储过程的问题。当用户选择“是”时,它应该按照它在“是”的 if 语句中所说的那样做,但它什么也不做,也不向数据库中插入任何内容。它适用于“否”条件。你能告诉我什么不起作用吗?
ALTER PROCEDURE [dbo].[sp_ff_Insert_ProjectApproved]
(
@project_no varchar(6)
,@sequence_no int
,@grant_programme varchar(2)
,@jobs_approved int
,@grant_amount int
,@Committee varchar(4)
,@Meeting_no int
,@Minute_Item int
,@jobs_maintained int
,@approval_date date
,@approval_by int
,@comments varchar(1600)
,@created_by int
,@created_date datetime
,@updated_by int
,@updated_date datetime
,@approval varchar(5)
,@ratify varchar(3)
--,@research_type varchar(1)='T'
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
DECLARE @ReturnValue int,
@post_approval_status varchar(3),
@approval_status varchar(3),
@current_status varchar(3)
set @current_status = ( SELECT approval_status from approval_master_tbl
WHERE project_no = @project_no …Run Code Online (Sandbox Code Playgroud) 尝试从 SQL Server Management Studio v18.5 更新某些行时出现此错误:
消息 50000,级别 16,状态 1,过程 UPDATElimit,第 7 行 [批处理起始行 0] 要同时处理许多行。减少并重试。Msg 3609, Level 16, State 1, Line 1 事务在触发器中结束。该批次已中止。
我怎样才能绕过这个限制?
触发代码:
ALTER TRIGGER [dbo].[UPDATElimit]
on [dbo].[table]
FOR UPDATE
AS
BEGIN
IF (select count(*) from inserted) > 1000
BEGIN
RAISERROR('To many rows being processed at one. Reduce and try again.', 16, 1)
ROLLBACK
END
END
Run Code Online (Sandbox Code Playgroud) 我有一个用于许多报告查询的表。我想知道以“有序”方式读取表格的次数。在聚集索引扫描的执行计划中,可以看到读取是否“有序”。此信息是否在其他地方可用,或者是搜索计划缓存的唯一解决方案?
当我省略该ORDER BY子句时,或者如果我将其作为选择运行并省略创建表部分,我有以下语句,但我需要这两者来确保生成的密钥排序正确
有任何想法吗?
消息 104381,级别 16,状态 1,第 18 行
ORDER BY 子句在视图、CREATE TABLE AS SELECT、INSERT SELECT、SELECT INTO、内联函数、派生表、子查询和公用表表达式中无效,除非 TOP 或 FOR XML 是还指定。
CREATE TABLE #demo
WITH (DISTRIBUTION = ROUND_ROBIN)
AS
SELECT
ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS ID,
schemas.name as [schema],
tables.name as [table],
columns.column_id as [ordinal],
columns.name as [column],
types.name as [type]
FROM SYS.COLUMNS
inner join sys.types
on types.system_type_id = columns.system_type_id
inner join sys.tables
on tables.object_id = columns.object_id
inner join sys.schemas
on schemas.schema_id = tables.schema_id
order by …Run Code Online (Sandbox Code Playgroud) 我正在使用SQL Server 2014并且我需要修改我现有的T-SQL查询,以便它适用于链接服务器。
我现有的代码如下:
USE [MyDatabase]
SELECT name
FROM sysobjects
WHERE id IN ( SELECT id
FROM syscolumns
WHERE name like '%SPA%' )
Run Code Online (Sandbox Code Playgroud)
我通常使用以下方法连接到链接服务器:
Use [MyDatabase]
Select * from [xxx.xx.0.20].[LinkedDatabaseName].dbo.[TableName]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这里给出的答案(但它仍然不起作用):无法通过链接服务器查询 SQL 服务器元数据
这是我的尝试(尽管与上面显示的现有代码相比,我不太明白为什么我需要将该点 (.) 放在 sysobjects 中):
USE [MyDatabase]
SELECT name
FROM [xxx.xx.0.20].[LinkedDatabaseName].sys.objects
WHERE id IN ( SELECT id
FROM syscolumns
WHERE name like '%SPA%' )
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:“无效的列名 'id'。”
t-sql ×10
sql-server ×9
dynamic-sql ×1
functions ×1
null ×1
plan-cache ×1
trigger ×1
windows ×1