タグ付けされた質問 「sql-server」

Microsoft SQL Serverは、リレーショナルデータベース管理システム(RDBMS)です。このタグは、Compact、Express、Azure、Fast-track、APS(以前のPDW)、Azure SQL DWを含むすべてのSQL Serverエディションに使用します。他のタイプのDBMS(MySQL、PostgreSQL、Oracleなど)には、このタグを使用しないでください。データベースに直接関連している場合を除き、このタグをソフトウェアやモバイル開発の問題に使用しないでください。

7
TSQLのCOALESCE関数
TSQLのCOALESCE関数がどのように機能するかを誰かが説明できますか?構文は次のとおりです COALESCE(x、y) この関数に関するMSDNドキュメントはかなりあいまいです


21
パラメータなしでSQLインジェクションを回避する
ここで、コードでパラメーター化されたSQLクエリを使用することについて、別の議論が行われています。議論には2つの側面があります。私と、SQLインジェクションから常に保護するためにパラメーターを使用する必要があると言う他の人と、それが必要だと思わない他の人です。代わりに、SQLインジェクションを回避するために、すべての文字列で単一のアポストロフィを2つのアポストロフィに置き換えたいと考えています。私たちのデータベースはすべてSql Server 2005または2008を実行しており、コードベースは.NET Framework 2.0で実行されています。 C#で簡単な例を挙げましょう。 私はこれを使って欲しい: string sql = "SELECT * FROM Users WHERE Name=@name"; SqlCommand getUser = new SqlCommand(sql, connection); getUser.Parameters.AddWithValue("@name", userName); //... blabla - do something here, this is safe 他の人がこれをしたい間: string sql = "SELECT * FROM Users WHERE Name=" + SafeDBString(name); SqlCommand getUser = new SqlCommand(sql, …

4
SQL Server CTEと再帰の例
再帰でCTEを使用することはありません。私はそれに関する記事を読んでいました。この記事では、SQLサーバーのCTEと再帰を利用して従業員情報を示します。基本的には、従業員とそのマネージャー情報を表示しています。このクエリの仕組みを理解できません。これがクエリです: WITH cteReports (EmpID, FirstName, LastName, MgrID, EmpLevel) AS ( SELECT EmployeeID, FirstName, LastName, ManagerID, 1 FROM Employees WHERE ManagerID IS NULL UNION ALL SELECT e.EmployeeID, e.FirstName, e.LastName, e.ManagerID, r.EmpLevel + 1 FROM Employees e INNER JOIN cteReports r ON e.ManagerID = r.EmpID ) SELECT FirstName + ' ' + …

8
SQL ServerのINSERT INTO SELECTクエリでの重複を避ける
次の2つのテーブルがあります。 Table1 ---------- ID Name 1 A 2 B 3 C Table2 ---------- ID Name 1 Z からTable1にデータを挿入する必要がありTable2ます。次の構文を使用できます。 INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1 ただし、私の場合、重複したIDが存在する可能性がありTable2(私の場合、それは単なる " 1"です)、エラーをスローするため、再度コピーすることはしたくありません。 私はこのようなものを書くことができます: IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1) INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 ELSE …

6
スクリプトまたはストアドプロシージャで使い捨て関数を作成できますか?
SQL Server 2005で、SQLスクリプトまたはストアドプロシージャの内部で宣言された、1回限りの使用、つまりローカル関数の概念はありますか?作成しているスクリプトの複雑さを抽象化したいのですが、関数を宣言できる必要があります。 ちょっと興味があるんだけど。

10
SQL Serverの末尾のスペースを含まないLEN関数
SQL Server 2005には次のテストテーブルがあります。 CREATE TABLE [dbo].[TestTable] ( [ID] [int] NOT NULL, [TestField] [varchar](100) NOT NULL ) 人口: INSERT INTO TestTable (ID, TestField) VALUES (1, 'A value'); -- Len = 7 INSERT INTO TestTable (ID, TestField) VALUES (2, 'Another value '); -- Len = 13 + 6 spaces SQL ServerのLEN()関数でTestFieldの長さを見つけようとすると、末尾のスペースがカウントされません-例: -- …
109 sql-server 

11
SQL Server:MAX(DATE)の行のみをSELECT
データのテーブルがあります(dbはMSSQLです)。 ID OrderNO PartCode Quantity DateEntered 417 2144 44917 100 18-08-11 418 7235 11762 5 18-08-11 419 9999 60657 100 18-08-11 420 9999 60657 90 19-08-11 OrderNO、PartCode、Quantityを返すクエリを作成しますが、最後に登録された注文についてのみです。 サンプルテーブルから、次の情報を取得したいと思います。 OrderNO PartCode Quantity 2144 44917 100 7235 11762 5 9999 60657 90 注文9999に対して1行だけが返されたことに注意してください。 ありがとう!
109 sql-server 

4
SQL ServerにログインとしてActive Directoryユーザーグループを追加する方法
Windows認証を使用してSQL Serverに接続する.netアプリケーションがあります。 アプリケーションでSQL Server認証を使用することはできません。私たちのプロジェクトには多くのActive Directoryユーザーがいます。したがって、ADユーザーごとに個別のログインアカウントを作成するのではなく、SQL Server内のActive Directoryユーザーごとに個別のログインアカウントを作成する必要があります。SQLServerでActive Directoryユーザーグループを使用する方法はありますか?

17
Printステートメントを使用してVARCHAR(MAX)を印刷する方法は?
私は次のコードを持っています: DECLARE @Script VARCHAR(MAX) SELECT @Script = definition FROM manged.sys.all_sql_modules sq where sq.object_id = (SELECT object_id from managed.sys.objects Where type = 'P' and Name = 'usp_gen_data') Declare @Pos int SELECT @pos=CHARINDEX(CHAR(13)+CHAR(10),@script,7500) PRINT SUBSTRING(@Script,1,@Pos) PRINT SUBSTRING(@script,@pos,8000) スクリプトの長さは約10,000文字で、最大8000文字しか保持できないprintステートメントを使用しているため、2つのprintステートメントを使用しています。 問題は、たとえば18000文字のスクリプトがある場合に、3つの印刷ステートメントを使用していたことです。 では、スクリプトの長さに応じて印刷ステートメントの数を設定する方法はありますか?




4
列に一意制約を作成するにはどうすればよいですか(SQL Server 2008 R2)?
SQL Server 2008 R2を使用しており、一意の列を設定したいと考えています。 これを行うには、「一意のインデックス」と「一意の制約」の2つの方法があるようです。一意の制約が推奨されていますが、インデックスも自動的に取得されるため、私が理解しているものとそれほど変わりません。 一意の制約を作成するにはどうすればよいですか? ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name) SQL Server Management Studioを使用して一意の制約を作成する方法はありますか?

13
データベースのトランザクションログがいっぱいです
トランザクションを開いたままにしておく長時間のプロセスがあります。 これを実行する方法を制御できません。 トランザクションは全期間開いたままになっているため、トランザクションログがいっぱいになると、SQL Serverはログファイルのサイズを増やすことができません。 したがって、プロセスはエラーで失敗します"The transaction log for database 'xxx' is full"。 データベースプロパティのトランザクションログファイルのサイズを増やすことでこれを回避しようとしましたが、同じエラーが発生します。 次に何を試すべきかわからない。プロセスは数時間実行されるため、試行錯誤するのは簡単ではありません。 何か案は? 誰かが興味を持っている場合、プロセスは組織のインポートです Microsoft Dynamics CRM 4.0. 十分なディスク容量があります。ログはシンプルロギングモードであり、プロセスを開始する前にログをバックアップしています。 -=-=-=-=-更新-=-=-=-=- これまでのコメントに感謝します。以下は、開いているトランザクションのためにログが大きくならないことを私に信じさせたものです。 次のエラーが発生します... Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception: System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.