AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
主页 / dba / 问题

问题[sql-server-2008](dba)

Martin Hope
Leonardo
Asked: 2023-03-14 21:41:20 +0800 CST

数据库依赖关系图?

  • 5

我有几个 SQL Server(2008 向前)和 Oracle(12c 向前)遗留数据库在服务器上运行......我知道一个事实,各种存储过程指向其他数据库,比如,这使得数据库依赖select * from OtherDB.mySchema.Products于OtherDB......

有没有一种简单的方法来映射这种“相互依赖性”,最好是生成图表?

sql-server-2008
  • 1 个回答
  • 35 Views
Martin Hope
Ichigo Kurosaki
Asked: 2023-03-12 06:27:46 +0800 CST

在单个查询中的 3 个表中插入行,SQL SERVER 2008

  • 5

我需要在单个查询中将数据插入 3 个表

表技能数据

用户索引 技能点 总技能
1个 5202 99

表徽

用户索引 伯爵会徽 地位
1个 1265 1个

餐桌奖励

用户索引 等级 代码
1个 99 1005
sql-server-2008
  • 1 个回答
  • 45 Views
Martin Hope
Prince Arya
Asked: 2023-01-07 01:24:59 +0800 CST

仅在其中一台服务器上从字符串转换日期和/或时间时转换失败

  • 4

我有一个sql查询如下:

select * from Txn_Master
where Txn_Type = 'TPD' and 
Txn_Date = Getdate() 
order by Txn_ID DESC

但是在这个 sql-server 查询中,当我手动输入日期(如“01/06/2023”)时,它会在表中显示数据,但每当我输入 getdate() 函数以自动获取当前日期时,它不显示任何数据,只显示空白表

sql-server-2008
  • 1 个回答
  • 33 Views
Martin Hope
Hussein ALSHAMIRI
Asked: 2022-10-06 00:35:56 +0800 CST

始终在高可用性组上选项灰显

  • 1

我正在尝试使用 SQL 2016 STD 启用 Always on HA 组,但该选项显示为灰色,如下所示

在此处输入图像描述

任何有关如何启用它的提示将不胜感激。

问候,

侯赛因

sql-server sql-server-2008
  • 1 个回答
  • 27 Views
Martin Hope
مجتبی حکیمیان
Asked: 2022-08-19 09:26:51 +0800 CST

当 ANSI_WARNINGS 关闭时,即使使用 nvarchar,也无法将其插入到我的特殊字符表中

  • 0

我想在我的表中插入一个数据行,名称为:DSKWOR00,但出现此错误:

字符串或二进制数据将被截断。

所以我关闭了 ANSI_WARNINGS 并插入了行但结果不是我的值

这是我的 T-SQL :

1 - 创建我的表:

CREATE TABLE [dbo].[DSKWOR00](   [DSW_ID] [nvarchar](10) NULL,    [DSW_YY] [float] NOT NULL,    [DSW_MM] [float] NOT NULL,    [DSW_LISTNO] [nvarchar](12) NULL,    [DSW_ID1] [nvarchar](8) NULL,    [DSW_FNAME] [nvarchar](60) NULL,    [DSW_LNAME] [nvarchar](60) NULL,    [DSW_DNAME] [nvarchar](60) NULL,    [DSW_IDNO] [nvarchar](15) NULL,    [DSW_IDPLC] [nvarchar](30) NULL,    [DSW_IDATE] [nvarchar](8) NULL,    [DSW_BDATE] [nvarchar](8) NULL,    [DSW_SEX] [nvarchar](3) NULL,    [DSW_NAT] [nvarchar](10) NULL,    [DSW_OCP] [nvarchar](50) NULL,    [DSW_SDATE] [nvarchar](8) NULL,    [DSW_EDATE] [nvarchar](8) NULL,    [DSW_DD] [float] NULL,    [DSW_ROOZ] [float] NULL,    [DSW_MAH] [float] NULL,    [DSW_MAZ] [float] NULL,    [DSW_MASH] [float] NULL,    [DSW_TOTL] [float] NULL,    [DSW_BIME] [float] NULL,    [DSW_PRATE] [float] NULL,    [DSW_JOB] [nvarchar](6) NULL,    [PER_NATCOD] [nvarchar](10) NOT NULL, CONSTRAINT [PK_DSKWOR00] PRIMARY KEY CLUSTERED(    [DSW_YY] ASC,    [DSW_MM] ASC,    [PER_NATCOD] Asc ) ON [PRIMARY]) ON [PRIMARY] 

2 - 在我的表中插入一行:

INSERT INTO dbo.DSKWOR00
(DSW_ID,DSW_YY,DSW_MM,DSW_LISTNO,DSW_ID1,DSW_FNAME,DSW_LNAME,DSW_DNAME,DSW_IDNO,DSW_IDPLC,DSW_IDATE,DSW_BDATE,DSW_SEX,DSW_NAT,DSW_OCP,DSW_SDATE,DSW_EDATE,DSW_DD,DSW_ROOZ,DSW_MAH,DSW_MAZ,DSW_MASH,DSW_TOTL,DSW_BIME,DSW_PRATE,DSW_JOB,PER_NATCOD) 
VALUES 
('6773790024',1401,1,1,'80079349','¤ç¬ üóä','ö‘þõþîž','‘®¤þóä','1011','¢¥þ','0','¢¤õ','ü÷¤þ',' ñõ‘ä ¤þ¢õ',0,0,'0','0','0','0','0','0','0','0',0,'OZ0509','4430928460')

3 - 如果我使用 ANSI_WARNINGS ON 插入错误:

Msg 8152, Level 16, State 30, Line 3
String or binary data would be truncated.
--Note: My insert is correct I don't know why I'm seeing this error

4 - 所以为了修复错误,我这样做了:

SET ANSI_WARNINGS OFF

INSERT INTO dbo.DSKWOR00
(DSW_ID,DSW_YY,DSW_MM,DSW_LISTNO,DSW_ID1,DSW_FNAME,DSW_LNAME,DSW_DNAME,DSW_IDNO,DSW_IDPLC,DSW_IDATE,DSW_BDATE,DSW_SEX,DSW_NAT,DSW_OCP,DSW_SDATE,DSW_EDATE,DSW_DD,DSW_ROOZ,DSW_MAH,DSW_MAZ,DSW_MASH,DSW_TOTL,DSW_BIME,DSW_PRATE,DSW_JOB,PER_NATCOD) 
VALUES 
('6773790024',1401,1,1,'80079349','¤ç¬ üóä','ö‘þõþîž','‘®¤þóä','1011','¢¥þ','0','¢¤õ','ü÷¤þ',' ñõ‘ä ¤þ¢õ',0,0,'0','0','0','0','0','0','0','0',0,'OZ0509','4430928460')

SET ANSI_WARNINGS ON

5 -最后我的行将插入,但它不是我插入表中的值!

---- My Values in Inser :  ('6773790034',1401,1,1,'80069349','¤ç¬ üóä','ö‘þõþîž','‘®¤þóä','1011','¢¥þ','0','¢¤õ','ü÷¤þ',' ñõ‘ä ¤þ¢õ',0,0,'0','0','0','0','0','0','0','0',0,'OZ0509','4430928444')
---- What did Insert :       6773790034  1401 1 1  80069349   ¤ç¬? ü??     ?‘???î?   ‘®¤???    1011  ¢¥?    0  ¢¤?    ü÷?           ??‘? ¤?¢?  0 0  0   0   0   0   0   0   0   0  0  OZ0509   4430928444
sql-server sql-server-2008
  • 1 个回答
  • 103 Views
Martin Hope
مجتبی حکیمیان
Asked: 2022-08-13 06:05:16 +0800 CST

为什么 SERIALIZABLE 级别不会为 SQL Server 中的其他会话锁定表

  • 2

我想在我的表中防止删除、插入、更新和选择的并发,所以我尝试SERIALIZABLE在事务之前使用表,但这并没有为其他进程锁定表!如何解决?

我尝试了什么:

1- 创建 Table_1

    --Create Sample Table
CREATE TABLE [dbo].[Table_1](
    [Number] [bigint] NOT NULL,
    [Price] [bigint] NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
    [Number] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[Table_1] ([Number], [Price]) VALUES (1, 1000)
GO
INSERT [dbo].[Table_1] ([Number], [Price]) VALUES (2, 3000)
GO
INSERT [dbo].[Table_1] ([Number], [Price]) VALUES (3, 8000)
GO

2- 延迟查询会话一:

--SESSION 1
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;

WAITFOR DELAY '00:00:10.000'
UPDATE Table_1 SET Price = 6000 WHERE NUMBER = 1
SELECT * FROM Table_1

COMMIT TRANSACTION;

3-查询会话二,这个查询最多等待会话一直到结束进程,但事实并非如此!:

--SESSION 2 
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;

SELECT * FROM Table_1

COMMIT TRANSACTION;

在此处输入图像描述

sql-server sql-server-2008
  • 1 个回答
  • 289 Views
Martin Hope
MrVimes
Asked: 2022-07-15 04:47:12 +0800 CST

SQL Server Swap 后,除了小型 ODBC 查询之外的任何东西都在长距离 VPN 上失败

  • 0

我最近交换了数据库服务器(将数据库从旧恢复到新然后交换 IP)......

旧:Sql Server 2005、Windows Server 2003 新:Sql Server 2008、Windows Server 2012

从地理位置附近的 VPN 连接到服务器(点网网站、PHP、vbscript、mssql)的所有进程在新服务器上都可以正常工作。

但是我们在服务器(英国)和卫星办公室(美国肯塔基州)之间有一个 VPN,还有一个在 Microsoft Access 上运行的数据库应用程序,当在新服务器上执行查询时,这个应用程序会抛出一个错误。错误是......

错误:ODBC--调用失败。

[Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]ConnectionRead (recv())。(#10054) [Microsoft][ODBC SQL Server Driver][DBNETLIB]一般网络错误。检查您的网络文档。(#11)

如果我暂时让此应用程序查询旧服务器(通过更改本地主机文件),则不会发生错误并且一切正常。

为了帮助解决这个问题,我构建了一个小脚本......

'ConString="Provider=SQLOLEDB;Data Source=172.17.201.11,1433;" & _
'   "OLE DB Services=-2;Initial Catalog=Perf;Network=DBMSSOCN;User Id=*;Password=*"

ConString="Provider=SQLOLEDB;Data Source=172.17.201.11,1433;" & _
    "Initial Catalog=Perf;Network=DBMSSOCN;User Id=*;Password=*"
    set conn = CreateObject("ADODB.Connection") 
    
Conn.connectiontimeout=500
Conn.commandtimeout=500
conn.open ConString

SCRIPTTIMEOUT = 1000

'sqlstring="SELECT top 100 ClientID FROM Clients"
sqlstring="SELECT top 1000 ClientID FROM Clients"
'sqlstring="SELECT ClientID FROM Clients"

'succeeds with top 100
'fails with top 1000 or no limit


set Rcount = Conn.Execute(sqlstring)

msgbox Rcount(0)

Rcount.Close
set Rcount = Nothing

set sqlstring = Nothing
Conn.Close
set Conn = Nothing

如果我查询 100 行,则该脚本有效。如果我尝试 1000,它每次都会失败(我还没有尝试过中间数量,但我认为缩小范围没有多大意义)

如果我将 IP 地址切换到旧服务器,该脚本将起作用(其他一切都相同 - 相同的 vpn,相同的客户端,相同的脚本)

脚本和访问应用程序通过不同的 VPN(也英国)在各个方面都可以正常工作

  • 我浏览了每台服务器上可以找到的所有设置(在 MS SQL Studio、配置管理器、网络设置中),以尝试匹配并尝试不同的设置。
  • 我已停止并启动服务
  • 我已经用谷歌搜索了这个并尝试了我能找到的每一个建议(我已经迷失了方向,但我已经尝试添加OLE DB Services=-2。我已经尝试过Encrypt=on(并且关闭)。我已经尝试过Trusted_connection=on(并且关闭)。我已经尝试过Pooling=on(并且关闭)。我有尝试在 IP 之后指定实例名称。

两台服务器都在同一个物理机架中,在同一个网络/子网上,连接到同一个物理交换机。

在我走上弄乱VPN设置的路线之前,交换电线(需要访问DC)我可以/应该做/看看新服务器上的帮助吗?

编辑: 如果我添加Packet Size=1024;到我的连接字符串,它就可以工作!问题是,两台服务器都默认设置为 4096,而旧服务器可以正常工作。

编辑 2以上适用于我的测试脚本,但不适用于访问应用程序。

我希望找到一种不需要更改连接字符串的解决方法,因为这会很麻烦(涉及访问应用程序的开发人员)

sql-server-2008 sql-server-2005
  • 1 个回答
  • 88 Views
Martin Hope
FlexMcMurphy
Asked: 2022-06-15 09:18:02 +0800 CST

适用于 Windows 7 pre SP1 的最新版本的 SQL Server Management Studio?

  • 0

我正在尝试使用安装在 Windows 7 Pro 32 位 PC 上的 SQL Server 2008(不是 2008 r2,只是 2008)做一些工作。它只是没有应用 Service Pack 1 的 Windows 7。我没有更新PC的选项,只能按现在的样子使用它。

我正在尝试找到将安装在这台 PC 上的 SQL Server Management Studio 版本。有人知道吗?

我尝试了 v17.9.1,但我收到一条错误消息,说需要 Win 7 SP1。不幸的是,我没有安装 SP1 的选项,并且计算机也无法访问互联网。

DID 在普通 Windows 7 上安装的最后一个版本是什么?

干杯。

sql-server-2008 ssms
  • 1 个回答
  • 90 Views
Martin Hope
mail_sady
Asked: 2021-11-11 02:06:07 +0800 CST

将一台服务器中的一个数据库复制到其他2台服务器SQL2008

  • 1

在 product ion 中,我们在 2 台服务器之间进行事务复制,其中一个数据库中的数据从服务器 A 传输到服务器 B。我们现在想在短时间内添加另一台服务器 C,并使从服务器 A 到服务器 C 的复制正常工作。简而言之,服务器 A 的一个数据库同时将一种方式复制到服务器 B和服务器 C。在 SQL2008 标准版中可以吗?如果是,那么哪种类型的复制会起作用?

sql-server-2008 replication
  • 2 个回答
  • 73 Views
Martin Hope
SEarle1986
Asked: 2021-11-04 02:51:05 +0800 CST

更改光标内的 SET 选项 - 基于兼容性级别的不同行为

  • 4

我发现数据库兼容性级别之间的一段代码的行为存在差异,并想知道这是什么原因。下面是一个简单的示例,它遍历一个计数表并ROWCOUNT在第 50 次迭代时更改选项:

设置:

/* Create tally table */

SELECT  TOP 100
        ROW_NUMBER() OVER (ORDER BY a.object_id) AS Number
INTO    #Tally
FROM    sys.objects a
        CROSS JOIN sys.objects b;

/* Create Some databases with different compatibility levels */

CREATE DATABASE [100Compat] WITH COMPATIBILITY_LEVEL = 100
CREATE DATABASE [110Compat] WITH COMPATIBILITY_LEVEL = 110
CREATE DATABASE [120Compat] WITH COMPATIBILITY_LEVEL = 120
CREATE DATABASE [130Compat] WITH COMPATIBILITY_LEVEL = 130

受影响的代码:

/* cursor through the tally table */
DECLARE MyCursor CURSOR
FOR
SELECT  Number
FROM    #Tally
FOR READ ONLY;

DECLARE @num INT;

OPEN MyCursor

FETCH MyCursor
INTO @num
WHILE @@FETCH_STATUS = 0

BEGIN
    SET ROWCOUNT 0

    /* change the value for ROWCOUNT on iteration 50 */
    IF @num = 50 SET ROWCOUNT 1

    PRINT @num

    FETCH MyCursor
    INTO @num
END

SET ROWCOUNT 0

CLOSE MyCursor
DEALLOCATE MyCursor

如果我对它运行上述内容,[100Compat]则会在消息窗口中打印数字 1-100。

如果我针对 运行上述操作[110Compat],[120Compat]或者[130Compat]我可以在消息窗口中看到值 1-50 和错误消息

消息 16958,级别 16,状态 3,第 41 行无法完成游标操作,因为自声明游标后设置选项已更改。

导致这种行为变化的两种兼容模式之间有什么区别?是否有在 110 中启用/禁用的跟踪标志或类似的东西?

我看过这篇文章,但似乎没有什么明显的原因导致差异

sql-server-2008 sql-server-2016
  • 1 个回答
  • 234 Views

Sidebar

Stats

  • 问题 199037
  • 回答 263511
  • 最佳答案 131755
  • 用户 66345
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve