使用变量创建模式的脚本
我很惊讶以前没有出现过,但是我在这里或其他地方没有发现任何搜索.我发现一些模糊的类似的东西表明问题是我脚本中的使用命令仅持续到一行,但是没有迹象表明如何处理该行. 我要做的是:创建一个通用脚本,以创建一个使用我所有常见的模式和表格创建"模板"数据库.所有变量(例如数据库名称)均打算在标题中设置,以便可以根据需要更改它们,并且可以仅运行脚本,而无需进行任何风险的搜索和更换操作以更改硬编码值. 问题是什么:我无法在正确的数据库中生成模式;他们都在大师中产生.尝试明确设置数据库无济于事;我刚收到运行时错误. 我的技能水平:长时间访问用户,但仍在探索SQL Server的山麓丘陵中.我敢肯定(希望)对于更远的斜坡上的人来说,这将是非常容易的. 有人知道我如何做这样的事情吗? (如下所示的现有代码.) DECLARE @DBName NVARCHAR(50) = 'TheDBName'; -- Assume that there's a bunch of code
12 2023-10-21
编程技术问答社区
像操作员一样,N和%SQL Server在NVARCHAR列上不起作用
有什么方法可以使查询工作? declare @t nvarchar(20) set @t='حس' SELECT [perno] ,[pName] FROM [dbo].[People] Where [pName] like N''+@t +'%' 我不能这样使用: Where [pName] like N'حس%' 或使用存储过程: ALTER PROCEDURE [dbo].[aTest] (@t nvarchar(20)) AS BEGIN SELECT [perno] ,[pName] FROM [dbo].[People] WHERE ([People].[pName] LIKE N'' +@t + '%') END 解决方案 您不需要在WHERE子句中使用N前缀,因为您的变量已经nvarchar,并且您正在传递一个变量而不是 文字字符串.
8 2023-09-22
编程技术问答社区
T-SQL INSERT INTO 禁用约束条件检查
我想暂时(仅用于T-SQL语句)禁用约束检查. 我的陈述是: insert into branchOffice( branchOfficeTypeId, labirintoClientiId, companyId, signboardName, address, addressNumber, zipCode, city, province, officePhoneNumber, officeFaxNumber, officeEmail, statusId, officeNotes, squareMeters, familyHelpersCount, employeesCount, workingCompanyPartnerCount) SELECT 1, [NewBiz.Labirinto].dbo.Clienti.id, 1, [NewBiz.Labirinto].dbo.clienti.Insegna, cas
24 2023-09-21
编程技术问答社区
将数据导入现有表
如何从SQL 中的另一个数据库中将数据导入数据库中的现有表 我正在尝试但行不通.这说 '无法将显式值插入时间戳列."使用INSERT与列列表一起排除时间戳列,或将a DEFAULT插入timestamp列中. Insert Into [test].[dbo].[Sample$Employee] select * from [Test1].[dbo].[Sample1$Employee] 谢谢 解决方案 您可以尝试 INSERT INTO .. SELECT * FROM .. 修改后,您需要指定要插入新表格的列. 所以您的查询可以是 INSERT INTO .. ([Column1], [Column1], [Column1]) SELECT [Column1],[
8 2023-09-21
编程技术问答社区
函数FormsOf中的参数和SQL注入
以下SQL通过@SearchWord参数易受SQL注入? 我想将参数与formsof函数一起使用,但是我唯一的指南就是在此堆栈溢出问题中:如何将参数传递给sql Server中的formation 但是,解决方案似乎是使用一些动态SQL,我想知道这是否容易受到SQL注入的影响.如果@SearchWord包含SQL注入类型字符串,将会发生什么?这不是问题,因为它仍在参数范围内,作为参数传递给freetextttable? 给定的解决方案是: DECLARE @SearchWord nvarchar(max) SET @SearchWord = 'tax' DECLARE @SearchString nvarchar(max) SET @SearchString = 'FormsOf(INFLECTIONAL, "' + @SearchWord + '")' SELECT listing_id, RANK, name, address, city, zip, he
10 2023-09-21
编程技术问答社区
限制半隆以防止SQL注射?
我已经看到SQL注入字符串通常是这样构建的: ' ; DROP DATABASE db -- 因此,如果我不允许在应用程序的输入中使用半隆,这100%是否可以防止任何SQL注入攻击? 解决方案 否,它不能防止SQL注入攻击.每当您在客户端或在存储的Proc中动态构造SQL时,您都有风险. 参数化查询是将输入输入查询的首选方法. 其他解决方案 使用参数化查询(或存储过程),并避免像瘟疫一样动态SQL. 我建议使用内置库功能,而不是尝试编写自己的反注射代码. 即使应该使用幼稚的实现;即使使用;(例如作为合法的Varchar或Char参数中通过的一部分).您最终将不得不编写自己的SQL解析器才能接受/拒绝查询. 您可以阅读在这里更多有关动态SQL及其提出的问题(和solvess)的信息. 其他解决方案 不,不是.您刚刚显示了一个SQL注入的一个例子.但是还有更多,所有这些取决于您将数据插入中的上下文. 除此之外,导致此问题的不是
12 2023-09-21
编程技术问答社区
sql 在运行查询和在存储过程中运行查询时使用不同的执行计划?
我有这个查询, Declare @Prcocessrate float declare @item varchar(20) declare @process varchar(20) declare @branch varchar(20) set @item = 'shirt' set @process = 'kt' set @branch = '1' select @Prcocessrate = ProcessPrice from itemwiseprocessrate where itemname=@Item and Process=@process and branchid=@branch 当我单手运行它时,执行计划仅显示 3个步骤,请参阅您的自己. 但我有这个procedure sp_newBooking as ALTER PROC sp_newbooking -- other arguements-- AS BEGIN --OTHER FLAGS--
12 2023-09-21
编程技术问答社区
在PowerShell中捕获不同的sqlcmd出口代码,以解决连接/数据问题
我正在调用PowerShell的SQLCMD执行T-SQL脚本.目前,我正在使用":ON错误退出"来退出脚本,如果使用违反约束的数据引起的错误. 但是,如果数据库存在连接性问题,则SQLCMD还给出了1的出口.是否有办法设置:On错误出口码为1以外的其他方法?我知道使用以下内容:退出(选择2)来执行此操作,但我仍然宁愿使用:在错误上,因此我不必重写脚本. 解决方案 您可以使用PowerShell中的出口关键字.这是一个示例 创建一个称为sqlcmdexit.ps1的脚本,具有以下内容: $result = sqlcmd -S"missing" -d master -Q "select @@servername" if ($result[1] -like "*Error Locating Server/Instance Specified*" -or $result[1] -like "*Could not open a connection to SQL Serve
12 2023-09-21
编程技术问答社区
如何在DBEAVER中使用SQLCMD GO批处理定界符?
我需要使用go 1 dbeaver IDE中的调味师. 如果我不使用GO批处理分配器,我会出现错误: '创建触发器'必须是查询批次中的第一个语句. 因此,批处理go go的定界符必须留在脚本中.无法删除或取代'; ' 如何将SQLCMD与DBEAVER IDE使用? - OS: Ubuntu 16.94 LTS - Dbeaver 4.2.3 - sqlcmd: Already installed and avialable in PATH 文档: 解决方案 我找到了我的问题的答案: 如果我们要执行语句 选择要执行的语句 Ctrl + Enter 如果我们要执行SQL脚本(与GO一起使用): 选择要执行的语句 alt + x 执行SQL语句,结果在选项卡中分开: 选择要执行的语句 alt + \ 执行SQL脚本,结果在选项卡中分开(可与GO一起使用): 选择要执行的语句 ctrl + alt +
8 2023-09-21
编程技术问答社区
在SQL Server 2008上使用sqlalchemy等待数据库还原完成
我试图在开发过程中使用SQL Server上的TSQL自动化DB恢复,并将SQLalchemy与PYODBC一起使用. . 我要执行的命令是: """创建数据库dbname 从disk ='c:\ backups \ dbname.bak'还原数据库dbname,替换,将'dbname_data'移至'c:\ databases \ dbname_data.mdf' .ldf'"" 不幸的是,在代码运行后,在SQL Management Studio中,我看到DB仍处于状态"还原...". . 如果我通过管理工作室恢复,则可以正常工作.如果我使用子过程调用" SQLCMD",则可以使用. pymssql在身份验证方面存在问题,甚至没有那么远. 可能出了什么问题? 解决方案 备份和还原语句异步运行,因此在转到其余代码之前不会终止. 使用 http://ryepup.unwashedmeme.com/blog/2010/08/26/makin
10 2023-09-21
编程技术问答社区
根据重复列条目删除重复行
我有下表,我将根据重复列的条目删除重复. so,在下表(运行代码段)中," createon"字段中的重复项,07/04/2022 15:39:40.0000000和" id"字段. 有没有办法删除基于重复的选定字段? 在 Export Data .h { color:Black; font-family:Tahoma; font-size:8pt; } table { border-collapse:collapse; border-width:1px; border-style:solid; border-color:Silver; padding:3px; } td { border-width:1px;
14 2023-09-21
编程技术问答社区
CTE使用CTE表之前执行命令
在选择CTE表之前,是否可以写任何类型的代码? DECLARE @TestTable TABLE (ID INT ,name NVARCHAR) INSERT INTO @TestTable VALUES (1,'a'),(2,'b'),(1,'c') ;WITH TempCte(name) AS ( SELECT name FROM @TestTable WHERE ID = 1 ) PRINT 'test' SELECT * FROM TempCte 解决方案 不,这是无法完成的.如果您引用MSDN,则: A common table expression (CTE) can be thought of as a temporary result set that is defined within the execution scope of a SINGLE SELECT, INSERT, UPDATE, DELETE, or CREATE VIEW sta
16 2023-09-21
编程技术问答社区
选择第一行,其中下一个2行增加 + 1,而(rowval + 2)则可以由3分组
我都准备好了这个问题,部分由@Gordon Linoff回答,还有其他要求. 我想找到随后的n行值增加 +1. 的第一行 CREATE TABLE #Temp ([ID] int, [cct] int) ; INSERT INTO #Temp ([ID], [cct]) VALUES (12807, 6), (12813, 12), (12818, 17), (12823, 22), (12824, 23), (12830, 29), (12831, 30), (12832, 31), (12833, 32), (12835, 34), (12837, 36), (12838, 37), (12839, 38), (12840, 39), (12841, 40), (12844, 43), (12846, 45), (
8 2023-09-21
编程技术问答社区
如何在现有数据中掩盖24小时至12小时
我想知道我的sql是如何这样的,我的问题是每个我删除代码中的werty子句,都有一个错误(转换日期和/或从字符字符串转换时间时失败.想要查看我的所有数据,下图是示例,只有我有很多数据 这是第一表 | Entries | recordDate | Empid | Reference | +-----------------------+-------------------------+--------+-----------+ | 0016930507201907:35I | 2019-05-07 00:00:00 000 | 001693 | 1693 | | 0016930507201917:06O | 2019-05-07 00:00:00 000 | 001693 | 1693 | | 0016930507201907:35I | 2019-05-0
10 2023-09-21
编程技术问答社区
多项选择答案T-SQL查询
查询是获取用户是否选择问题的多项选择答案是正确的,如果正确,则1 else 0 我有两个表question_answer和user_exam_answer,条目表的用户在submitted_option_id 列中提交答案 在 当用户答案(user_exam_answer)与问题答案(question_answer)表匹配时,我尝试编写查询. select count(1) as result from (select qa.question_id, count(qa.correct_option_id) as col1, count(sa.submited_option_id) as col2 from question_answer qa left join user_exam_answers sa on (sa.question
16 2023-09-19
编程技术问答社区
T-SQL如何从中获得首次呼叫分辨率
我有两列.一个是电话号码.第二个是电话的确切日期和时间(开始).我想为FCR添加第三列(值0,如果为fals,1,则为1). 方法是...如果"数字1"在24小时内未回调,则" fcr = 1". 如果在接下来的24小时内拨打了2号,则" fcr = 0" 但是我对此有疑问,主要是与它的逻辑有关. 任何帮助. 解决方案 看起来您想检查24小时内的电话号码是否重新占用. 下面的示例应该使您前进.我使用了外部应用结构. declare @table table ( PhoneNumber nvarchar(20), EntryTime datetime ) insert into @table values ('(321) 546-7842', dateadd(hour,-30,getdate())); insert into @table values ('(321) 546-7842', dateadd(hour,-3,getdate())); in
20 2023-09-19
编程技术问答社区
复杂查询的CTE
我有此查询: SELECT C.[First Name], C.[Last Name], SUM(Salary.Emp_Salary) AS 'Current Salary' FROM ( SELECT Emp_First_Name AS "First Name", Emp_Last_Name AS "Last Name", MAX(Emp_Salary_Change_Year) AS "Change Year" FROM Employee_Details AS e INNER JOIN Country AS co ON e.Emp_Country_Id = co.Country_Id INNER JOIN State AS s ON e.Emp_State_Id = s.State_Id INNER JOIN Designation AS d ON e.Desig
38 2023-09-19
编程技术问答社区
试图根据不同字段的值计数字段的#不同值
在我的SQL查询中寻求一些帮助.我正在尝试找到一种方式来指定客户在两家不同商店购买或出售的情况,但是如果他们在一家商店购买并在另一家商店购买,我就不在乎或不想算在内. 我尝试了 - Select count(distinct store) OVER(Partition BY Customer) ,但它不喜欢独特的,并且会导致错误.当我不指定不同的情况时,它将为我提供对该客户的所有观察结果的计数,而不仅仅是他们购买或出售给的商店#商店的数量. 基于下面的数据,客户d是IM想要过滤的类型. 我的原始数据: Customer Type Qty Store A Purchase 1 2 A Purchase 2 2 A Sale 3 1 B Sale 24 1 B
12 2023-09-19
编程技术问答社区
让所有嵌套的孩子为父母ID
开始弹奏 Work Table ProductId, LabelName, CategoryId, ChildCategoryId ------------------------------------ 1, Widget A, 1, null null, Category A, 2, 1 2, Widget B, 3, null Categories Table CategoryId, CategoryName --------------------------- 1, Category A 2, Category B 3, Category C 给出了上面的信息,您将如何获得产品ID的所有类别? 例如,给定1个产品ID,以下是所需的结果. Desired Results ProductId, LabelName, CategoryId, ChildCategoryId ------------------------------------ 1, Wid
8 2023-09-19
编程技术问答社区
SQL从同一ID中获取多个值
我在SQL中有一个对同一ID具有多行的表. 例如: ID event_id category_id 1 1 3 2 1 6 3 1 18 4 1 24 5 2 1 我想知道如何进行SQL查询以实现每个event_id的输出,它显示了它所在的所有类别. 例如 { "event_id": 1, "categories": [3, 6, 18, 24] } 谢谢 解决方案 字符串聚集足够吗? select event_id, string_agg(category_id, ',') within group (order by category_id) from t group by event_id; 其他解决方案 如果
6 2023-09-19
编程技术问答社区